劍指offer 二叉搜尋樹與雙向鍊錶

2022-09-05 11:33:10 字數 560 閱讀 6335

輸入一棵二叉搜尋樹,將該二叉搜尋樹轉換成乙個排序的雙向鍊錶。要求不能建立任何新的結點,只能調整樹中結點指標的指向。

1/*2

struct treenode 9};

*/10

class

solution

25//

左子樹遞迴(小於根節點的結點)

26 head = convert(prootoftree->left);

27if(head !=null)

34//

當此子樹的左右枝都排列完畢時,找到最小結點為與根節點相連

35while(prootoftree->left !=null)

36 prootoftree = prootoftree->left;

37return

prootoftree;38}

39 };

根據二叉搜尋樹的性質,排列整個雙向鍊錶時需要注意,每個子樹在回溯到根結點時,要確保返回值,是當前鍊錶的最值,如左子樹要返回當前最右(大)結點,右子樹要返回當前最左(小)結點。

劍指offer 二叉搜尋樹與雙向連線

題目描述 輸入一棵二叉搜尋樹,將該二叉搜尋樹轉換成乙個排序的雙向鍊錶。要求不能建立任何新的結點,只能調整樹中結點指標的指向。普通的二叉樹也可以轉換成雙向鍊錶,只不過不是排序的 思路 與中序遍歷相同 採用遞迴,先鏈結左指標,再鏈結右指標 1,更改doublelinkedlist,最後返回list的第乙...

《劍指offer》 二叉搜尋樹與雙向鍊錶

題目描述 輸入一棵二叉搜尋樹,將該二叉搜尋樹轉換成乙個排序的雙向鍊錶。要求不能建立任何新的結點,只能調整樹中結點指標的指向。解法 主要應用到二叉樹的中序遍歷。將左子樹遍歷進行不斷壓棧,然後再出棧。用兩個指標,current指向當前的樹的節點,pre指向前乙個節點,然後進行改指標引用,把壓棧的節點進行...

《劍指offer》二叉搜尋樹與雙向鍊錶

輸入一棵二叉搜尋樹,將該二叉搜尋樹轉換成乙個排序的雙向鍊錶。要求不能建立任何新的結點,只能調整樹中結點指標的指向 輸入一棵二叉搜尋樹 將該二叉搜尋樹轉換成乙個排序的雙向鍊錶 struct treenode class solution 按照中序遍歷,按照左子樹 根節點 右子樹的順序。include ...