將乙個二叉樹用前序遍歷的順序展開成為乙個全是右子樹順序的樹。
因為主要是到當前節點的時候會使得前乙個節點丟失,所以在遍歷的時候要儲存前乙個節點,然後將此時的節點當作上個節點的右節點,左節點為null。因為之前儲存了原來的右節點,所以不用擔心丟失,等遍歷完最後乙個左子樹的節點時自然就把右節點接到後面了。
class
solution
if(temp.right!=null)
if(temp.left!=null)
pre=temp;}}
}
如果用遞迴的話更簡單,因為如果遞迴的話就是先把左展開,再把右展開,然後將右拼接到左下面。
class
solution
root.right=right;
}}
題解 二叉樹展開為單鏈表
給定乙個二叉樹,原地將它展開為乙個單鏈表。例 輸入 1 2 5 34 6輸出 1 2 3 4 5 6題目要求是將二叉樹展開為單鏈表 使用樹節點的右指標連線 一種解決方案是,對於每個子樹採用中序遍歷,先將左子樹轉換為單鏈表,然後將它插入到根節點和其右子樹之間,最後將右子樹轉換為單鏈表。以例子中的樹為例...
二叉樹遞迴
我們來看一下二分搜尋樹的釋放,這就是乙個典型的遞迴問題 function destroy node 這個遞迴包括兩個部分,乙個是遞迴終止條件,乙個是遞迴的執行。我們知道遞迴是不斷地將當前函式壓入函式棧,如果沒有if node null return這個終止條件,當函式棧被壓滿之後就會發生棧溢位 棧的...
遞迴二叉樹
1 基本概念 1 節點 結點包含資料和指向其它節點的指標。2 根節點 樹第乙個結點稱為根節點。3 結點的度 結點擁有的子節點個數。4 葉節點 沒有子節點的節點 度為0 5 父子節點 乙個節點father指向另乙個節點child,則child為孩子節點,father為父親節點。6 兄弟節點 具有相同父...