给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。
示例:
输入: [1,2,3,null,5,null,4] 输出: [1, 3, 4] 解释: 1 <--- / 2 3 <--- \ 5 4 <---
class Solution { public List<Integer> rightSideView(TreeNode root) { List<Integer> res = new ArrayList<>(); Queue<TreeNode> 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% 的用户
原文地址:https://www.cnblogs.com/Roni-i/p/10509910.html
时间: 2024-10-21 11:07:29