题目:求二叉树上两点的最近公共祖先
TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) {
if (!root || root == p || root == q) return root;
TreeNode* left = lowestCommonAncestor(root->left, p, q);
TreeNode* right = lowestCommonAncestor(root->right, p, q);
return !left ? right : !right ? left : root;
}
本文介绍了一种求解二叉树中两个节点最近公共祖先的有效算法。通过递归遍历左右子树,该方法能在O(n)的时间复杂度内找到结果。
130

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



