Lowest Common Ancestor of a Binary Search Tree

来源:互联网 发布:家暴 知乎 编辑:程序博客网 时间:2024/06/05 02:04
/** * Definition for a binary tree node. * public class TreeNode { *     int val; *     TreeNode left; *     TreeNode right; *     TreeNode(int x) { val = x; } * } */public class Solution {    public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {        if (root == null) {            return null;        }        if (root.val > p.val && root.val > q.val) {            return lowestCommonAncestor(root.left, p, q);        } else if (root.val < p.val && root.val < q.val) {            return lowestCommonAncestor(root.right, p, q);        } else {            return root;        }    }                // public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {    //     if (root == null || root == p || root == q) {    //         return root;    //     }            //     TreeNode ln = lowestCommonAncestor(root.left, p, q);    //     TreeNode rn = lowestCommonAncestor(root.right, p, q);            //     if (ln != null && rn != null) {    //         return root;    //     }    //     if (ln != null) {    //         return ln;    //     }    //     if (rn != null) {    //         return rn;    //     }    //     return null;    // }}

0 0