update 0235.二叉搜索树的最近公共祖先: 替换 go 代码

This commit is contained in:
Yuhao Ju
2022-12-04 23:10:10 +08:00
committed by GitHub
parent c5fa95ebff
commit 1287679e8e

View File

@ -303,14 +303,22 @@ class Solution:
递归法: 递归法:
```go ```go
//利用BSL的性质前序遍历有序
func lowestCommonAncestor(root, p, q *TreeNode) *TreeNode { func lowestCommonAncestor(root, p, q *TreeNode) *TreeNode {
if root==nil{return nil} if root == nil {
if root.Val>p.Val&&root.Val>q.Val{//当前节点的值大于给定的值,则说明满足条件的在左边 return nil
return lowestCommonAncestor(root.Left,p,q) }
}else if root.Val<p.Val&&root.Val<q.Val{//当前节点的值小于各点的值,则说明满足条件的在右边 for {
return lowestCommonAncestor(root.Right,p,q) if root.Val > p.Val && root.Val > q.Val {
}else {return root}//当前节点的值在给定值的中间(或者等于),即为最深的祖先 root = root.Left
}
if root.Val < p.Val && root.Val < q.Val {
root = root.Right
}
if (root.Val - p.Val) * (root.Val - q.Val) <= 0 {
return root
}
}
return root
} }
``` ```
@ -326,11 +334,11 @@ var lowestCommonAncestor = function(root, p, q) {
if(root === null) { if(root === null) {
return root; return root;
} }
if(root.val>p.val&&root.val>q.val) { if(root.val > p.val && root.val > q.val) {
// 向左子树查询 // 向左子树查询
return root.left = lowestCommonAncestor(root.left,p,q); return root.left = lowestCommonAncestor(root.left,p,q);
} }
if(root.val<p.val&&root.val<q.val) { if(root.val < p.val && root.val < q.val) {
// 向右子树查询 // 向右子树查询
return root.right = lowestCommonAncestor(root.right,p,q); return root.right = lowestCommonAncestor(root.right,p,q);
} }
@ -343,9 +351,9 @@ var lowestCommonAncestor = function(root, p, q) {
var lowestCommonAncestor = function(root, p, q) { var lowestCommonAncestor = function(root, p, q) {
// 使用迭代的方法 // 使用迭代的方法
while(root) { while(root) {
if(root.val>p.val&&root.val>q.val) { if(root.val > p.val && root.val > q.val) {
root = root.left; root = root.left;
}else if(root.val<p.val&&root.val<q.val) { }else if(root.val < p.val && root.val < q.val) {
root = root.right; root = root.right;
}else { }else {
return root; return root;