diff --git a/notes/68. 树中两个节点的最低公共祖先.md b/notes/68. 树中两个节点的最低公共祖先.md index 9113ba6b..e75dcea4 100644 --- a/notes/68. 树中两个节点的最低公共祖先.md +++ b/notes/68. 树中两个节点的最低公共祖先.md @@ -9,9 +9,9 @@ ### 解题思路 -在二叉查找树中,两个节点 p, q 的公共祖先 root 满足 root.val \>= p.val && root.val \<= q.val。 +在二叉查找树中,设 p.val \<= q.val,从根节点往下查找,第一个满足 root.val \>= p.val && root.val \<= q.val 的节点 root 就是 p、q 的最低公共祖先。 -

+

```java public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) { @@ -35,7 +35,7 @@ public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) { 在左右子树中查找是否存在 p 或者 q,如果 p 和 q 分别在两个子树中,那么就说明根节点就是最低公共祖先。 -

+

```java public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) { diff --git a/notes/pics/offer-bst-lca.png b/notes/pics/offer-bst-lca.png new file mode 100644 index 00000000..12c5b4fa Binary files /dev/null and b/notes/pics/offer-bst-lca.png differ diff --git a/notes/pics/offer-tree-lca.png b/notes/pics/offer-tree-lca.png new file mode 100644 index 00000000..2c483d41 Binary files /dev/null and b/notes/pics/offer-tree-lca.png differ