给定一个二叉树的 根节点 root
,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。
我的思路:层次遍历的框架下,每次当最后一次出队时加入结果即可
代码如下:
public class Solution { public List<Integer> rightSideView(TreeNode root) { if (root == null){ return new ArrayList<>(); } List<Integer> res = new ArrayList<>(); Queue<TreeNode> queue = new LinkedList<>(); queue.offer(root); while (!queue.isEmpty()){ int size = queue.size(); while (size > 0){ TreeNode node = queue.poll(); if (size == 1){ res.add(node.val); } if (node.left != null){ queue.offer(node.left); } if (node.right != null){ queue.offer(node.right); } size--; } } return res; } }
结果: