zoukankan      html  css  js  c++  java
  • LeetCode235. 二叉搜索树的最近公共祖先

    ☆☆

    class Solution {
        public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {
            /**
             *  方法1:递归
             */
            if (p.val < root.val && q.val < root.val) {
                return lowestCommonAncestor(root.left, p, q);
            }
            if (p.val > root.val && q.val > root.val) {
                return lowestCommonAncestor(root.right, p, q);
            }
            // 对应三种情况:
            // 1. p 和 q分别位于node的两侧,那么node就是最近公共祖先
            // 2. p 就是 node,那么仍为node
            // 3. q 就是 node,那么仍为node
            return root;
            /**
             * 方法2:非递归
             */
            /*
            while (root != null) {
                if (p.val < root.val && q.val < root.val) {
                    root = root.left;
                }else if (p.val > root.val && q.val > root.val) {
                    root = root.right;
                }else {
                    return root;
                }
            }
            return null;
            */
        }
    }
  • 相关阅读:
    课堂练习
    《你的灯亮着吗》第二篇总结
    四则运算2程序
    《你的灯亮着吗》第一篇总结
    四则运算2
    阅读计划
    四则运算
    《人月神话》读后感
    软件演化
    软件测试
  • 原文地址:https://www.cnblogs.com/HuangYJ/p/14189331.html
Copyright © 2011-2022 走看看