我已經看到一些關於如何連接二級樹的節點的文章/頁面,它們處於同一級別,但沒有一篇文章清楚地解釋過程/算法。如果有人能夠接受這一點,我將不勝感激。代碼不是必需的,但用僞代碼解釋會很好。在二叉樹的同一級別連接節點
爲了便於討論,讓我們考慮樹:
0
1 2
3 4 5 6
7 9
在上述情況下:
0 should point to null.
1 should point to 2.
3 should point to 4.
....
7 should point to 9.
9 should point to NULL.
基本樹的結構是:
class Tree {
public:
int data;
Tree* left;
Tree* right;
Tree* next;
}
行的程序可以使用[廣度優先搜索]遍歷樹levelwise(https://en.wikipedia.org/wiki/廣度優先搜索)算法,並在每個級別上臨時存儲前一個節點。然後''前一個節點'的'next'將是'當前解析'節點。 – sameerkn
是的,使用在圖層中遍歷的bfs或寬度優先搜索,所以基本上,您將在與根相同的距離處具有處於相同級別的節點。 –
@sameerkn,我明白這一點。你介意寫一些僞代碼嗎? –