235. Lowest Common Ancestor of a Binary Search Tree
一遍AC
思路
1 如果两个值都比root.val小,说明在左子树 2 3 return lca(root.left,p,q) 4 5 如果两个值都比root.val大,说明在右子树 6 7 return lca(root.right, p, q) 8 9 否则说明结果在这个节点的两边或者其中一个节点是另外一个节点的parent,即(p.val == root.val || q.val == root.val) 10 11 都返回root本身
代码:
1 public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) { 2 if(root.val > p.val && root.val > q.val) { 3 return lowestCommonAncestor(root.left, p, q); 4 } 5 if(root.val < p.val && root.val < q.val) { 6 return lowestCommonAncestor(root.right, p, q); 7 } 8 return root; 9 }