63
63
class Solution :
64
64
def lowestCommonAncestor (self , root : ' TreeNode' , p : ' TreeNode' , q : ' TreeNode' ) -> ' TreeNode' :
65
65
while root:
66
- if root.val < p.val and root.val < q.val:
66
+ if root.val < min ( p.val, q.val) :
67
67
root = root.right
68
- elif root.val > p.val and root.val > q.val:
68
+ elif root.val > max ( p.val, q.val) :
69
69
root = root.left
70
70
else :
71
71
return root
@@ -85,9 +85,9 @@ class Solution:
85
85
def lowestCommonAncestor (self , root : ' TreeNode' , p : ' TreeNode' , q : ' TreeNode' ) -> ' TreeNode' :
86
86
if root is None :
87
87
return None
88
- if root.val < p.val and root.val < q.val:
88
+ if root.val < min ( p.val, q.val) :
89
89
return self .lowestCommonAncestor(root.right, p, q)
90
- if root.val > p.val and root.val > q.val:
90
+ if root.val > max ( p.val, q.val) :
91
91
return self .lowestCommonAncestor(root.left, p, q)
92
92
return root
93
93
```
@@ -226,9 +226,6 @@ function lowestCommonAncestor(
226
226
227
227
func lowestCommonAncestor (root , p , q *TreeNode ) *TreeNode {
228
228
for root != nil {
229
- // 如果 p、q 的值都小于 root,说明 p、q 肯定在 root 的左子树中;
230
- // 如果 p、q 都大于 root,说明肯定在 root 的右子树中;
231
- // 如果一个在左一个在右,则说明此时的 root 记为对应的最近公共祖先。
232
229
if root.Val > p.Val && root.Val > q.Val {
233
230
root = root.Left
234
231
} else if root.Val < p.Val && root.Val < q.Val {
0 commit comments