public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {
while(root != null) {
// p,q 都在 root 的右子树中
if(root.val < p.val && root.val < q.val) {
// 遍历至右子节点
root = root.right;
// p,q 都在 root 的左子树中
} else if(root.val > p.val && root.val > q.val) {
// 遍历至左子节点
root = root.left;
} else {
// p,q分列两侧 说明已经找到最近公共祖先
break;
}
}
return root;
}

本文介绍了一种寻找二叉树中两个节点的最近公共祖先的有效算法。通过遍历二叉树并比较节点值,该算法能够快速定位到目标节点的最近公共祖先。
187

被折叠的 条评论
为什么被折叠?



