在二叉树中找到两个节点的最近公共祖先

依旧采用通用的解法。

 public int lowestCommonAncestor (TreeNode root, int o1, int o2) {
        // write code here
        TreeNode node=dfs(root,o1,o2);
        return node.val;
    }
    public TreeNode dfs(TreeNode root,int p,int q){
        if(root==null||root.val==p||root.val==q) return root;
        TreeNode left=dfs(root.left,p,q);
        TreeNode right=dfs(root.right,p,q);
        if(left==null) return right;
        if(right==null) return left;
        return root;
    }
全部评论

相关推荐

评论
点赞
收藏
分享
牛客网
牛客企业服务