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

2021-08-16 03:12:45 字數 509 閱讀 8230

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

分析:這個題本質上其實是對二叉搜尋樹的中序遍歷,但是要對結點的指標稍作改動。

1.先遍歷左子樹,將其構造成雙鏈表,並返回鍊錶的『根』結點;

2.得到左子樹雙鏈表的最後乙個結點;

3.如果左子樹不為空,將當前根結點追加到左子樹煉表後;

4.遍歷右子樹,將其構造成雙鏈表,並返回鍊錶的『根』結點;

5.如果右子樹不為空,將右子樹鍊錶追加到當前根結點之後;

6.返回結點。

/*

struct treenode

};*/

class solution

if( root->right != nullptr)

return root;

}treenode* convert(treenode* prootoftree)

};

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

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

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

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

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

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