总结:
根据节点与两目标值的关系,判断两目标值位于同一子树,还是位于不同子树。

import java.util.*;

/*
 * public class TreeNode {
 *   int val = 0;
 *   TreeNode left = null;
 *   TreeNode right = null;
 *   public TreeNode(int val) {
 *     this.val = val;
 *   }
 * }
 */

public class Solution {

    public int lowestCommonAncestor (TreeNode root, int p, int q) {
        // write code here
        TreeNode node = root;
        while(true){
            if(node.val<p&&node.val<q)
                node = node.right;
            else if(node.val>p&&node.val>q)
                node = node.left;
            else
                return node.val;
        }
    }
}