LintCode 二叉樹拆成鍊錶

2021-07-30 15:39:05 字數 835 閱讀 4686

題目描述:

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

注意事項

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

樣例:

1

\1 2

/ \ \

2 5 => 3

/ \ \ \

3 4 6 4\5

\6

做題思路:運用遞迴遍歷二叉樹。如果根結點為空,跳出遞迴,如果左孩子為空,則遍歷右子樹。建立兩個新的結點,把根結點的左右孩子的值賦給它們,用遞迴函式遍歷,讓左孩子為空,把原來左孩子的值賦給右孩子,當該結點的右孩子不為空時,再把左子樹的結點放進右子樹中,實現鍊錶。

關鍵**:

class solution 

treenode *left=root->left;

treenode *right=root->right;

flatten(left);

flatten(right);

root->left=null;

root->right=left;

while(left->right!=null)

left=left->right;

left->right=right;

}};

做題感想:這題自己做的時候總是wa和超時,上網搜答案一直沒看懂,後來在紙上畫了好幾遍,明白了這題的思路。

LintCode 將二叉樹拆成鍊錶

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

lintcode 將二叉樹拆成鍊錶

1 問題描述 將一棵二叉樹按照前序遍歷拆解成為乙個假鍊錶。所謂的假煉表是說,用二叉樹的 right 指標,來表示鍊錶中的 next 指標。樣例 1 1 2 2 5 3 3 4 6 4 5 6 2 解題思路 就是將一棵二叉樹按照前序遍歷然後存到一棵樹裡,這棵樹的特點就是右斜樹,所有節點的左子樹都是nu...

Lintcode 將二叉樹拆成鍊錶

不要忘記將左兒子標記為 null,否則你可能會得到空間溢位或是時間溢位。yes樣例1 1 2 2 5 3 3 4 6 4 5 6 思路 採用遞迴的方法,按照先序遍歷,將節點存放起來,放在乙個容器中 然後新建乙個頭結點指標,遍歷容器中的節點,依次將節點連線成乙個鍊錶。但是,要注意將左兒子標記為null...