236 二叉樹的最近公共祖先

2021-10-22 05:40:11 字數 985 閱讀 4973

二叉樹的最近公共祖先

給定乙個二叉樹, 找到該樹中兩個指定節點的最近公共祖先。

示例 1:

輸入:root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q = 1

輸出:3

解釋:節點 5 和節點 1 的最近公共祖先是節點 3 。

示例 2:

輸入:root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q = 4

輸出:5

解釋:節點 5 和節點 4 的最近公共祖先是節點 5 。因為根據定義最近公共祖先節點可以為節點本身。

示例 3:

輸入:root = [1,2], p = 1, q = 2

輸出:1

樹中節點數目在範圍 [2, 105] 內。

-109 <= node.val <= 109

所有 node.val 互不相同 。

p != q

p 和 q 均存在於給定的二叉樹中。

/**

* definition for a binary tree node.

* public class treenode

* }*/class

solution

if(root == p || root == q)

treenode left =

lowestcommonancestor

(root.left, p, q)

; treenode right =

lowestcommonancestor

(root.right, p, q);if

(left != null && right != null)

if(left == null && right == null)

return left == null ? right : left;

}}

236 二叉樹最近公共祖先

給定乙個二叉樹,找到該樹中兩個指定節點的最近公共祖先。最近公共祖先的定義為 對於有根樹 t 的兩個結點 p q,最近公共祖先表示為乙個結點 x,滿足 x 是 p q 的祖先且 x 的深度盡可能大 乙個節點也可以是它自己的祖先 例如,給定如下二叉樹 root 3,5,1,6,2,0,8,null,nu...

236 二叉樹的最近公共祖先

給定乙個二叉樹,找到該樹中兩個指定節點的最近公共祖先。例如,給定如下二叉樹 root 3,5,1,6,2,0,8,null,null,7,4 示例 1 輸入 root 3,5,1,6,2,0,8,null,null,7,4 p 5,q 1輸出 3解釋 節點5和節點1的最近公共祖先是節點3。示例 2 ...

236 二叉樹的最近公共祖先

給定乙個二叉樹,找到該樹中兩個指定節點的最近公共祖先。例如,給定如下二叉樹 root 3,5,1,6,2,0,8,null,null,7,4 示例 1 輸入 root 3,5,1,6,2,0,8,null,null,7,4 p 5,q 1 輸出 3 解釋 節點 5 和節點 1 的最近公共祖先是節點 ...