Binary Tree Right Side View ---LeetCode
2016-11-28 16:08
239 查看
https://leetcode.com/problems/binary-tree-right-side-view/
解题思路:
这道题的意思要输出从右边看到的节点元素,即:每一层最右边的那个元素。因此我们可以用队列来实现,遍历每一层时,将最右边的元素入列。
需要注意的是:在将左右子树的节点入列时,一定要先入列右节点!
同理,如果是从左边看,只需要先将左节点入列即可。
解题思路:
这道题的意思要输出从右边看到的节点元素,即:每一层最右边的那个元素。因此我们可以用队列来实现,遍历每一层时,将最右边的元素入列。
需要注意的是:在将左右子树的节点入列时,一定要先入列右节点!
同理,如果是从左边看,只需要先将左节点入列即可。
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ public class Solution { public List<Integer> rightSideView(TreeNode root) { List<Integer> result = new ArrayList<>(); Queue<TreeNode> queue = new LinkedList<>(); if (root == null) return result; queue.offer(root); while (!queue.isEmpty()) { int size = queue.size(); for (int i=0; i<size; i++) { root = queue.poll(); // get the right-most element if (i == 0) result.add(root.val); if (root.right != null) queue.offer(root.right); if (root.left != null) queue.offer(root.left); } } return result; } }
相关文章推荐
- [LeetCode]Binary Tree Right Side View
- [LeetCode] Binary Tree Right Side View 二叉树的右侧视图
- [LeetCode]Binary Tree Right Side View
- LeetCode "Binary Tree Right Side View"
- [leetcode]48 Binary Tree Right Side View
- leetCode 101/199-Symmetric Tree/Binary Tree Right Side View
- 【LeetCode】Binary Tree Right Side View 解题报告
- Leetcode: Binary Tree Right Side View
- 199. Binary Tree Right Side View Leetcode Python
- LeetCode OJ Binary Tree Right Side View
- LeetCode | Binary Tree Right Side View
- LeetCode—Binary Tree Right Side View 二叉树层序遍历变形,Flatten Binary Tree to Linked List前序遍历变形
- LeetCode: Binary Tree Right Side View
- Leetcode 199 Binary Tree Right Side View
- Binary Tree Right Side View--LeetCode
- [Leetcode] Binary Tree Right Side View
- [Leetcode]由Binary Tree Right Side View说起
- Leetcode Binary Tree Right Side View
- LeetCode Binary Tree Right Side View : 思想上的基于队列的广度优先遍历,形式上的一个简单变种
- [LeetCode] Binary Tree Right Side View