给定一个二叉树的 根节点 root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。
示例 1:
输入: [1,2,3,null,5,null,4]
输出: [1,3,4]
示例 2:
输入: [1,null,3]
输出: [1,3]
示例 3:
输入: []
输出: []
提示:
二叉树的节点个数的范围是 [0,100]
-100 <= Node.val <= 100
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/binary-tree-right-side-view
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
层级遍历二叉树
1:层级遍历二叉树,用两个队列来记录每一层的节点。
2:当遇到最后一个节点的时候,则添加到list中。
public List<Integer> rightSideView(TreeNode root) { List<Integer> list = new ArrayList<>(); if (root == null) { return list; } Queue<TreeNode> a = new LinkedList<>(); Queue<TreeNode> b = new LinkedList<>(); a.offer(root); TreeNode pop = null; if (root == null) { return list; } while (!a.isEmpty()) { while (!a.isEmpty()) { pop = a.poll(); if (pop.left != null) { b.offer(pop.left); } if (pop.right != null) { b.offer(pop.right); } } a = b; b = new LinkedList<>(); list.add(pop.val); } return list; }