非独立思考
class Solution {public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {// 将2个节点放在一起讨论,当p q均小于或大于当前节点时,那么证明他们还在当前节点的某一子树中// 如果不满足上一行的条件,那么证明:他们产生分叉// 即他们的最近公共祖先TreeNode ancestor = root;while (true) {if (ancestor.val > p.val && ancestor.val > q.val) {ancestor = ancestor.left;} else if (ancestor.val < p.val && ancestor.val < q.val) {ancestor = ancestor.right;} else {// 找到了!return ancestor;}}}}
