987 二叉樹的垂序遍歷

2021-09-23 07:41:36 字數 1070 閱讀 2551

給定二叉樹,按垂序遍歷返回其結點值。

對位於(x, y)的每個結點而言,其左右子結點分別位於(x-1, y-1)(x+1, y-1)

把一條垂線從x = -infinity移動到x = +infinity,每當該垂線與結點接觸時,我們按從上到下的順序報告結點的值(y座標遞減)。

如果兩個結點位置相同,則首先報告的結點值較小。

x座標順序返回非空報告的列表。每個報告都有乙個結點值列表。

示例 1:

輸入:[3,9,20,null,null,15,7]

輸出:[[9],[3,15],[20],[7]]

解釋:

在不喪失其普遍性的情況下,我們可以假設根結點位於 (0, 0):

然後,值為 9 的結點出現在 (-1, -1);

值為 3 和 15 的兩個結點分別出現在 (0, 0) 和 (0, -2);

值為 20 的結點出現在 (1, -1);

值為 7 的結點出現在 (2, -2)。

示例 2:

輸入:[1,2,3,4,5,6,7]

輸出:[[4],[2],[1,5,6],[3],[7]]

解釋:根據給定的方案,值為 5 和 6 的兩個結點出現在同一位置。

然而,在報告 "[1,5,6]" 中,結點值 5 排在前面,因為 5 小於 6。

樹的結點數介於11000之間。

每個結點值介於01000之間。

987 二叉樹的垂序遍歷

給定二叉樹,按垂序遍歷返回其結點值。對位於 x,y 的每個結點而言,其左右子結點分別位於 x 1,y 1 和 x 1,y 1 把一條垂線從 x infinity 移動到 x infinity 每當該垂線與結點接觸時,我們按從上到下的順序報告結點的值 y 座標遞減 如果兩個結點位置相同,則首先報告的結...

演算法題 二叉樹的垂序遍歷

給你二叉樹的根結點 root 請你設計演算法計算二叉樹的 垂序遍歷 序列。對位於 row,col 的每個結點而言,其左右子結點分別位於 row 1,col 1 和 row 1,col 1 樹的根結點位於 0,0 二叉樹的 垂序遍歷 從最左邊的列開始直到最右邊的列結束,按列索引每一列上的所有結點,形成...

二叉樹層序遍歷 求二叉樹的層序遍歷

給定乙個二叉樹,返回該二叉樹層序遍歷的結果,從左到右,一層一層地遍歷 例如 給定的二叉樹是,該二叉樹層序遍歷的結果是 3 9,20 15,7 示例1 輸入 返回值 1 2 示例2輸入 返回值 1 2,3 4,5 解題思路 重點是如何把在一層的節點放到一起,設定乙個引數專門放一層的節點 class t...