例如,給定如下二叉樹: 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:
輸入: root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q = 4
輸出: 5
解釋: 節點 5 和節點 4 的最近公共祖先是節點 5。
因為根據定義最近公共祖先節點可以為節點本身。
說明:所有節點的值都是唯一的。
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)
if(left != null && right == null)
return null;
}}
二叉樹的最近公共祖先
給定乙個二叉樹,找到該樹中兩個指定節點的最近公共祖先。例如,給定如下二叉樹 root 3,5,1,6,2,0,8,null,null,7,4 思路 剛開始使用boolean來判斷要查詢的兩節點在左右孩子上,後面修改為使用treenode與null判斷兩節點位置 1 分別向左孩子和右孩子遞迴。2 若當...
二叉樹的最近公共祖先
輸入 root 3,5,1,6,2,0,8,null,null,7,4 p 5,q 1 輸出 3 輸入 root 3,5,1,6,2,0,8,null,null,7,4 p 5,q 4 輸出 5 法1 分別找出根節點到兩個節點的路徑,則最後乙個公共節點就是最低公共祖先。法2 public treen...
二叉樹的最近公共祖先
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15用例 lca 9,11 2 lca 9.6 1 lca 12,3 1 分析 從用例中看,9的祖先是 9 2 4 4 2 2 2 2 1,即 4,2,1都是9的祖先 11的祖先有 11 2 5,5 2 2,2 2 1 所以這是乙個有...