Leetcode: Binary Tree Right Side View
2015-04-11 07:06
344 查看
Given a binary tree, imagine yourself standing on the right side of it, return the values of the nodes you can see ordered from top to bottom. For example: Given the following binary tree, 1 <--- / \ 2 3 <--- \ \ 5 4 <--- You should return [1, 3, 4].
这道题就是BT的Level Order Traversal,每次要换一层的时候,记录当前节点
/** * Definition for binary tree * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ public class Solution { public List<Integer> rightSideView(TreeNode root) { ArrayList<Integer> res = new ArrayList<Integer>(); if (root == null) return res; LinkedList<TreeNode> queue = new LinkedList<TreeNode>(); queue.offer(root); int PNum = 1; int CNum = 0; while (!queue.isEmpty()) { TreeNode cur = queue.poll(); PNum--; if (cur.left != null) { queue.offer(cur.left); CNum++; } if (cur.right != null) { queue.offer(cur.right); CNum++; } if (PNum == 0) { res.add(cur.val); PNum = CNum; CNum = 0; } } return res; } }
public class Solution { public List<Integer> rightSideView(TreeNode root) { // reverse level traversal List<Integer> result = new ArrayList(); Queue<TreeNode> queue = new LinkedList(); if (root == null) return result; queue.offer(root); while (queue.size() != 0) { int size = queue.size(); for (int i=0; i<size; i++) { TreeNode cur = queue.poll(); if (i == 0) result.add(cur.val); if (cur.right != null) queue.offer(cur.right); if (cur.left != null) queue.offer(cur.left); } } return result; } }
相关文章推荐
- [LeetCode]Binary Tree Right Side View
- [LeetCode] Binary Tree Right Side View 二叉树的右侧视图
- [LeetCode]Binary Tree Right Side View
- leetcode 日经贴,Cpp code -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
- 【leetcode】Binary Tree Right Side View(middle)
- LeetCode OJ Binary Tree Right Side View
- LeetCode | Binary Tree Right Side View
- Binary Tree Right Side View--LeetCode
- LeetCode: Binary Tree Right Side View
- Leetcode 199 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
- LeetCode Binary Tree Right Side View : 思想上的基于队列的广度优先遍历,形式上的一个简单变种
- [LeetCode] Binary Tree Right Side View