987. 二叉树的垂序遍历
难度困难98
给你二叉树的根结点 root
,请你设计算法计算二叉树的 垂序遍历 序列。
对位于 (row, col)
的每个结点而言,其左右子结点分别位于 (row + 1, col - 1)
和 (row + 1, col + 1)
。树的根结点位于 (0, 0)
。
二叉树的 垂序遍历 从最左边的列开始直到最右边的列结束,按列索引每一列上的所有结点,形成一个按出现位置从上到下排序的有序列表。如果同行同列上有多个结点,则按结点的值从小到大进行排序。
返回二叉树的 垂序遍历 序列。
示例 1:
1 | 输入:root = [3,9,20,null,null,15,7] |
示例 2:
1 | 输入:root = [1,2,3,4,5,6,7] |
示例 3:
1 | 输入:root = [1,2,3,4,6,5,7] |
提示:
- 树中结点数目总数在范围
[1, 1000]
内 0 <= Node.val <= 1000
通过次数6,913
提交次数16,092
深度优先遍历+后处理
1 | /** |
官方题解
1 | class Solution { |