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