给定一个二叉树的 根节点 root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。
提示:
正常层次遍历,当每层遍历到最后一个的时候,把值添加到结果中。查看代码注释
class Solution { public List<Integer> rightSideView(TreeNode root) { //正常层次遍历过程 List<Integer> res = new ArrayList<>(); if (root == null) return res; Queue<TreeNode> queue = new LinkedList<>(); queue.add(root); while (!queue.isEmpty()){ int size = queue.size(); TreeNode tmp = null; for (int i = 0; i < size; i++){ tmp = queue.poll(); if (tmp.left != null) queue.add(tmp.left); if (tmp.right != null) queue.add(tmp.right); } //每一层遍历结束后,此时tmp的值就是每一层的最后一个值 res.add(tmp.val); } return res; } }