其他分享
首页 > 其他分享> > 235.二叉搜索树的最近公共祖先

235.二叉搜索树的最近公共祖先

作者:互联网

给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。
例如,给定如下二叉搜索树: root = [6,2,8,0,4,7,9,null,null,3,5]
示例 1:

输入: root = [6,2,8,0,4,7,9,null,null,3,5], p = 2, q = 8
输出: 6 
解释: 节点 2 和节点 8 的最近公共祖先是 6。

示例 2:

输入: root = [6,2,8,0,4,7,9,null,null,3,5], p = 2, q = 4
输出: 2
解释: 节点 2 和节点 4 的最近公共祖先是 2, 因为根据定义最近公共祖先节点可以为节点本身。
//递归
/**
 * 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-root.val)*(q.val-root.val)<=0)  //若左右节点减去根节点相乘<=0 则在节点两侧返回root
                return root;
            return lowestCommonAncestor(p.val<root.val?root.left:root.right,p,q); //不在两侧则向左右子树找
    }
}

标签:TreeNode,val,祖先,二叉,搜索,235,null,root,节点
来源: https://www.cnblogs.com/jackiez/p/13738450.html