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     }

 

posted @ 2016-07-29 00:31  warmland  阅读(175)  评论(0编辑  收藏  举报