二叉樹的最近公共祖先

2021-10-06 05:39:35 字數 514 閱讀 2272

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

遞迴解析:

終止條件:

當越過葉節點,返回null

當root等於p,q,返回root

遞推工作:

遞迴左子節點,返回值為left

遞迴右子節點,返回值為right

返回值:

當left和right同時為空:說明左右子樹都不包含p,q,返回null

當left和right同時不為空:說明p、q分布在root的異側,因此root為最近公共祖先,返回root

當left不為空,right為空:p、q都不在右子樹中,直接返回left。具體有兩種情況:

p、q其中乙個在root的左子樹中,此時root指向p(假設為p)

p、q都在root的左子樹中,此時root指向兩個節點最近的公共祖先

當right不為空,left為空時,與上同理。

class

solution

}

二叉樹的最近公共祖先

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