/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ class Solution { public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) { if(p.val > q.val) { TreeNode r = p; p = q; q = r; } while(root !=null) { if(root.val < p.val) { root = root.right; }else if(root.val > q.val) { root = root.left; }else{ return root; } } return root; } }