題目:[二叉搜尋樹與雙向鍊錶]
這個題目做的還行,我就是按照我的想法來的。
樹的題目多半可以分治,所以我先試了試。
覺得可以,原問題可以轉化為把左子樹轉化為乙個有序鍊錶,然後把右子樹轉化為乙個有序鍊錶。這樣根節點再分別和她們鏈結即可。
具體做的時候,應該是吸取了上次做某一道題目時的經驗,做的時候從底層開始,逐步向上細化**。因為大的框架很容易想,關鍵就是邊界條件,以及遞迴裡面的處理,這些操作可以在底層的時候想明白。
注意,返回值只是在左子樹為空的時候需要特別處理。
/*
struct treenode
};*/
class solution else
ret = root; // 修改返回值
if( r )
return ret;}}
};
劍指offer 二叉搜尋樹與雙向連線
題目描述 輸入一棵二叉搜尋樹,將該二叉搜尋樹轉換成乙個排序的雙向鍊錶。要求不能建立任何新的結點,只能調整樹中結點指標的指向。普通的二叉樹也可以轉換成雙向鍊錶,只不過不是排序的 思路 與中序遍歷相同 採用遞迴,先鏈結左指標,再鏈結右指標 1,更改doublelinkedlist,最後返回list的第乙...
《劍指offer》 二叉搜尋樹與雙向鍊錶
題目描述 輸入一棵二叉搜尋樹,將該二叉搜尋樹轉換成乙個排序的雙向鍊錶。要求不能建立任何新的結點,只能調整樹中結點指標的指向。解法 主要應用到二叉樹的中序遍歷。將左子樹遍歷進行不斷壓棧,然後再出棧。用兩個指標,current指向當前的樹的節點,pre指向前乙個節點,然後進行改指標引用,把壓棧的節點進行...
《劍指offer》二叉搜尋樹與雙向鍊錶
輸入一棵二叉搜尋樹,將該二叉搜尋樹轉換成乙個排序的雙向鍊錶。要求不能建立任何新的結點,只能調整樹中結點指標的指向 輸入一棵二叉搜尋樹 將該二叉搜尋樹轉換成乙個排序的雙向鍊錶 struct treenode class solution 按照中序遍歷,按照左子樹 根節點 右子樹的順序。include ...