1.尋找中間路徑
當用前序遍歷的方式訪問到某乙個節點的時候,我們把該節點新增到路徑中。如果該節點的值和我們要找的值相等,則列印路徑,如果不相等,則繼續訪問它的子節點。當前節點訪問結束之後,遞迴函式將自動回到它的父節點。因此我們在函式退出之前要在路徑上刪除當前節點,以確保返回父節點時路徑剛好是從根節點到父節點的路徑。
vector>>allroad;
void
rroad
(treenode* root,vector>road)
if(root-
>left !=
null
)rroad
(root-
>left,road);if
(root-
>right !=
null
)rroad
(root-
>right,road)
; road.
pop_back()
;}
此題是力扣上尋找葉子節點的最小公共父親,所以上面都是葉子節點到根節點的中間路徑。
2.沒有父指標尋找最小公共父親
因為先前使用二維vector儲存的中間路徑,且根節點位於容器首部,所以尋找兩個節點的公共父親只需要找到兩個容器的最後乙個相同的元素即可。**是解題的**就不附了。
傳送門:尋找最小公共父親
二叉樹的最小 最大 路徑 二叉樹
給定乙個二叉樹,找出其最小深度。最小深度是從根節點到最近葉子節點的最短路徑上的節點數量。說明 葉子節點是指沒有子節點的節點。示例 1 輸入 root 3,9,20,null,null,15,7 輸出 2 示例 2 輸入 root 2,null,3,null,4,null,5,null,6 輸出 5 ...
二叉樹 路徑
二叉樹中,從根節點到葉節點的每一條連線,我們稱之為路徑,最短路徑和最長路徑在之前的部落格中,我們已經完成了對他們的討論,現在我們討論一下,輸出一棵二叉樹中全部的路徑資訊。如下所示 public class operation childbinarytreepath root,return resul...
樹以及二叉樹
樹是一種非線性的資料結構,它是由n n 0 個有限結點組成乙個具有層次關係的集合.把它叫做樹是因為它看起來像一棵倒掛的樹,也就是說它是根朝下,而葉朝上的.每個結點有零個或多個子節點 沒有父節點的結點稱為根節點 每個非根節點有且只有乙個父節點 除了根節點外,每個子節點可以分為多個不相交的子樹 節點的度...