劍指offer 面試題36 二叉搜尋樹與雙向鍊錶

2021-10-03 01:32:35 字數 613 閱讀 3763

題目描述

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

tips: 使用遞迴,使用乙個指標的引用,來記錄轉換為鍊錶後的最後乙個元素

class

solution

treenode* plast=

null

;cursiveconvert

(prootoftree,plast)

;while

(plast-

>left)

return plast;

}void

cursiveconvert

(treenode* proot,treenode*

& plast)

cursiveconvert

(proot-

>left,plast);if

(plast!=

null

) plast=proot;

cursiveconvert

(proot-

>right,plast);}

};

劍指offer面試題36 二叉搜尋樹與雙向鍊錶

1.題目描述 輸入一棵二叉搜尋樹,將該二叉搜尋樹轉換成乙個排序的雙向鍊錶。要求不能建立任何新的結點,只能調整樹中結點指標的指向 3.實現 一開始我想到的是 中序遍歷然後把節點依次用左右指標連起來即可,沒有象書中講的那麼麻煩的方法 不過書中的這種遞 歸的方法還是值得練習的 struct treenod...

劍指offer 面試題36 二叉搜尋樹與雙向鍊錶

輸入一顆二叉搜尋樹,將該二叉搜尋樹轉換成乙個排序的雙向鍊錶。要求不能建立新的結點,只能調整樹中結點指標的指向。class binarytreenode 我們可以中序遍歷樹中的每乙個結點,這是因為中序遍歷演算法的特點是按照從小到大的順序遍歷二叉樹的每乙個結點。public class binarytr...

劍指offer 面試題36 二叉搜尋樹與雙向鍊錶

中序遞迴,乙個pre節點記錄前乙個節點 struct treenode class solution func prootoftree while prootoftree left return prootoftree void func treenode prootoftree convert p...