將二叉樹按照層級轉化為鍊錶

2021-09-25 15:48:18 字數 771 閱讀 1929

給一棵二叉樹,設計乙個演算法為每一層的節點建立乙個鍊錶。也就是說,如果一棵二叉樹有d層,那麼你需要建立d條鍊錶。

樣例 1:

輸入: 

輸出: [1->null,2->3->null,4->null]

解釋:

1/ \

2 3

/4

樣例 2:

輸入: 

輸出: [1->null,2->null,3->null]

解釋: 1\

2/

3

/**

* definition of treenode:

* class treenode

* }* definition for singly-linked list.

* struct listnode

* };

*/class solution

queueq;

q.push(root);

while (!q.empty())

else

if (head->left != null)

if (head->right != null)

}result.push_back(level);

}return result;

}};

將二叉搜尋樹轉化為雙向鍊錶

輸入一棵二叉搜尋樹,將該二叉搜尋樹轉換成乙個排序的雙向鍊錶。要求不能建立任何新的結點,只能調整樹中結點指標的指向。建立的雙向鍊錶的順序就是二叉搜尋樹的中序遍歷結果。這裡有遞迴和非遞迴解法。一般的非遞迴解法需要開闢額外的空間,本次借助morris演算法,給出一種不需要額外空間開銷的非遞迴解法。首先是遞...

樹轉化為二叉樹 森林轉化為二叉樹(詳解版)

前面介紹了普通樹轉化為二叉樹的孩子兄弟表示法,本節來學習如何將森林轉化為一整棵二叉樹。森林,指的是由 n n 2 棵互不相交的樹組成的集合,如圖 1 所示。在某些實際場景中,為了便於操作具有森林結構的資料,往往需要將森林轉化為一整棵二叉樹。我們知道,任意一棵普通樹都可以轉化為二叉樹,而森林是由多棵普...

二叉搜尋樹轉化為雙向鍊錶

首先需要明白二叉搜尋樹也是一種排序的資料結構,它的中序遍歷就是乙個不遞減的順序排列 所以如果要轉換成乙個排序好的雙向鍊錶,那麼僅需要改變原來指向左子節點和右子節點的指標,讓他們分別指向前節點和後節點即可,如圖所示 調整指標 原先指向左子節點的指標調整為鍊錶中指向前乙個節點的指標 原先指向右子節點的指...