將二叉樹拆成鍊錶

2021-07-30 23:09:14 字數 847 閱讀 7889

題目描述:

將一棵二叉樹按照前序遍歷拆解成為乙個假鍊錶。所謂的假煉表是說,用二叉樹的right 指標,來表示鍊錶中的 next 指標。

注意事項

不要忘記將左兒子標記為 null,否則你可能會得到空間溢位或是時間溢位。

樣例

1

\1 2

/ \ \

2 5 => 3

/ \ \ \

3 4 6 4\5

\6

解題思路:

先對根節點進行判斷,如果根節點為空,則返回空;若左子樹和右子樹同時為空,則返回空:若左子樹為空,將右子樹賦給右子樹;若右子樹為空,對左子樹進行遍歷,並對便利的結果進行儲存,然後將左子樹賦給右子樹;若左子樹和右子樹都不為空,則遍歷左子樹和右子樹,將左子樹的值賦給右子樹。

**實現:

class solution

if(root->right==null)

treenode *left = root->left;

treenode *right = root->right;

root->right = left;

flatten(left);

treenode *p = left;

while(p->right!=null)

p->right = right;

flatten(right);

root->left = null;

return;}};

感想:將二叉樹拆成鍊錶,即將右子樹變成左子樹的子樹。

將二叉樹拆成鍊錶

將一棵二叉樹按照前序遍歷拆解成為乙個假鍊錶。所謂的假煉表是說,用二叉樹的 right 指標,來表示鍊錶中的 next 指標。注意事項 不要忘記將左兒子標記為 null,否則你可能會得到空間溢位或是時間溢位 樣例1 1 2 2 5 3 3 4 6 4 5 6 definition of treenod...

將二叉樹拆成鍊錶

1 問題描述 將一棵二叉樹按照前序遍歷拆解成為乙個假鍊錶。所謂的假煉表是說,用二叉樹的 right 指標,來表示鍊錶中的 next 指標。樣例 1 1 2 2 5 3 3 4 6 4 5 6 2 實現思路 按前序遍歷,先找到左子樹的最右葉子節點,其next為根節點的右子樹,根的左子樹就變為右子樹了,...

將二叉樹拆成鍊錶

1.問題描述 將一棵二叉樹按照前序遍歷拆解成為乙個假鍊錶。所謂的假煉表是說,用二叉樹的right指標,來表示鍊錶中的next指標。注意事項 不要忘記將左兒子標記為 null,否則你可能會得到空間溢位或是時間溢位。2.思路 正如樣例 1 1 2 2 5 3 3 4 6 4 5 6先要把二叉樹的所有節點...