Lowest Common Ancestor of a Binary Tree

class Solution {
	public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {
			
			if (root == p || root == q || root == null) return root;
			
			TreeNode left = lowestCommonAncestor(root.left, p, q);
			TreeNode right = lowestCommonAncestor(root.right, p, q);
	
			if (left != null && right != null) {
				return root;
			} else if (left == null) {
				return right;
			} else if (right == null) {
				return left;
			}
			return null;
	}
}

最后更新于

这有帮助吗?