二叉樹的最近公共祖先

2021-10-05 17:32:48 字數 603 閱讀 1633

編寫乙個函式遞迴呼叫,從根節點開始判斷,若該節點為空,則返回null,若等於q或p,則返回該節點,若未找到公共祖先,則逐層向下遞迴,乙個根節點分左右兩個子節點,遞迴返回時對結果判斷,若左邊沒找到,則返回右節點,同理右邊。若兩邊都找到,則該節點為公共祖先。

public

class

solution

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

treenode left=

lowestcommonancestor

(root.left, p, q)

;treenode right=

lowestcommonancestor

(root.right, p, q);if

(left==

null

)return right;

if(right==

null

)return left;

return root;

}}

二叉樹的最近公共祖先

給定乙個二叉樹,找到該樹中兩個指定節點的最近公共祖先。例如,給定如下二叉樹 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...

二叉樹的最近公共祖先

例如,給定如下二叉樹 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,...