leetcode114 二叉樹展開為鍊錶

2021-10-06 01:53:39 字數 457 閱讀 8085

傳送門

題目: 給定乙個二叉樹,原地將它展開為鍊錶。例如,給定二叉樹

1

/ \ 2

5/ \ \34

6 將其展開為:1 \

2 \3\

4\5\

6

遞迴: 思路是先利用dfs的思路找到最左子節點,然後回到其父節點,把其父節點和右子節點斷開,將原左子結點連上父節點的右子節點上,然後再把原右子節點連到新右子節點的右子節點上,然後再回到上一父節點做相同操作。

所有樹的遍歷問題都有遞迴迭代兩種方法

用後序遍歷模板 c++ 畫圖理解

void

flatten

(treenode* root)

劍指offer 同型別有: bst轉換成雙向鍊錶

leetcode114 二叉樹展開為鍊錶

給定乙個二叉樹,原地將它展開為鍊錶。先把左右展開,右放左最後,左放右,左置空 definition for a binary tree node.class treenode def init self,x self.val x self.left none self.right none clas...

Leetcode 114 二叉樹展開為鍊錶

給定乙個二叉樹,原地將它展開為鍊錶。例如,給定二叉樹 1 2 5 3 4 6 複製 將其展開為 1 2 3 4 5 6 複製 這算是比較經典的一道題目了,博主面試快手的時候原題。最開始一想,覺得遞迴的求解不就好了,但是遞迴的時候發現需要注意乙個地方就是 需要先遞迴右子樹,然後記錄下右子樹展開完成之後...

leetcode 114 二叉樹展開為鍊錶

給定乙個二叉樹,原地將它展開為鍊錶。例如,給定二叉樹 1 2 5 3 4 6將其展開為 1 2 3 4 5 6採用二叉樹後序遍歷 python 如下 class treenode object def init self,x self.val x self.left none self.right ...