二叉數公共祖先

2021-10-08 12:13:56 字數 834 閱讀 6375

235. 二叉搜尋樹的最近公共祖先

主要思路:見圖

情況一,p,q都在當前根節點左側

情況二,p,q都在當前根節點右側

情況三,:

236. 二叉樹的最近公共祖先

主要思路:結合235 後序遍歷 dfs

lowestcommonancestor

(treenode* root, treenode* p, treenode* q)

參考題解

面試題26. 樹的子結構

主要思路:

先序遍歷樹 a中的每個節點 n_a。對應函式 issubstructure(a, b)

判斷樹 a中 以 n_a為根節點的子樹是否包含樹b。對應函式recur(a, b)

bool

issubstructure

(treenode* a, treenode* b)

bool

recur

(treenode* a, treenode* b)

參考題解

ACM A 二叉樹結點公共祖先

乙個順序儲存的完全二叉樹 1 2 3 4 5 6 7 任意給定兩結點的編號,求兩結點最近的公共祖先。每組資料一行,為空格隔開的兩個數i和j,皆為32位有符號正整數 每組資料對應一行,為編號為i和j的結點的最近公共祖先的編號 4 5 4 7 2 1程式設計的時候注意考慮所有情況,要不可能一直在迴圈裡導...

二叉樹的最近公共祖先

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