给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。
示例:
输入: [1,2,3,null,5,null,4]输出: [1, 3, 4]解释: 1 <--- / \2 3 <--- \ \ 5 4 <---
class Solution { public ListrightSideView(TreeNode root) { List res = new ArrayList<>(); Queue queue = new LinkedList<>(); if(root == null) return res; queue.add(root); while(!queue.isEmpty()){ int size = queue.size(); for(int i = 0; i < size; i++){ TreeNode node = queue.poll(); if(i == size - 1) res.add(node.val); if(node.left != null) queue.add(node.left); if(node.right != null) queue.add(node.right); } } return res; }}
执行用时 : 3 ms, 在Binary Tree Right Side View的Java提交中击败了51.57% 的用户
内存消耗 : 34.6 MB, 在Binary Tree Right Side View的Java提交中击败了0.00% 的用户