题目描述
给定一个二叉树的 根节点 root
,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。
示例1
1 2
| 输入: [1,2,3,null,5,null,4] 输出: [1,3,4]
|
示例2
1 2
| 输入: [1,null,3] 输出: [1,3]
|
提示:
- 二叉树的节点个数的范围是
[0,100]
-100 <= Node.val <= 100
题解
借助层序遍历,每遍历一层,将最后一个节点的值放到结果数组中
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| func rightSideView(_ root: TreeNode?) -> [Int] { guard let root = root else { return [] } var res = [Int]() var queue = [root] var cur: TreeNode? = nil while !queue.isEmpty { var count = queue.count while count > 0 { cur = queue.removeFirst() if let left = cur?.left { queue.append(left) } if let right = cur?.right { queue.append(right) } count -= 1 } res.append(cur!.val) } return res }
|