Binary Tree Level Order Traversal II
来源:互联网 发布:奥迪a3轮毂数据 编辑:程序博客网 时间:2024/05/16 07:41
Binary Tree Level Order Traversal II
Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from left to right, level by level from leaf to root).
For example:
Given binary tree {3,9,20,#,#,15,7}
,
3 / \ 9 20 / \ 15 7
return its bottom-up level order traversal as:
[ [15,7], [9,20], [3]]This is a typical level order traversal problem. My thought is to use a queue to traverse the element level by level. At first, put the root element into the queue. Then mark the root element and if it has right node or left node, put them into the queue and pop the root element out. Repeat the same process to all the other nodes in the queue. Every time entering the while loop, we need to get the size of the current queue because the size of current queue is the size of the current level.
/** * 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<List<Integer>> levelOrderBottom(TreeNode root) { List<List<Integer>> ret = new ArrayList<List<Integer>>(); List<List<Integer>> retReverse = new ArrayList<List<Integer>>(); if (root == null) return ret; Queue<TreeNode> queue = new LinkedList<TreeNode>(); queue.offer(root); while(!queue.isEmpty()) { int size = queue.size(); List<Integer> list = new ArrayList<Integer>(); for (int i = 0; i < size; i++) { TreeNode node = queue.poll(); if (node.left != null) queue.offer(node.left); if (node.right != null) queue.offer(node.right); list.add(node.val); } ret.add(list); } for (int i = ret.size() - 1; i >= 0; i--) retReverse.add(ret.get(i)); return retReverse; }}
0 0
- LeetCode: Binary Tree Level Order Traversal II
- [LeetCode]Binary Tree Level Order Traversal II
- LeetCode Binary Tree Level Order Traversal II
- [Leetcode] Binary Tree Level Order Traversal II
- Binary Tree Level Order Traversal II
- Binary Tree Level Order Traversal II
- LeetCode Binary Tree Level Order Traversal II
- [LeetCode] Binary Tree Level Order Traversal II
- Binary Tree Level Order Traversal II
- Binary Tree Level Order Traversal II
- Binary Tree Level Order Traversal II
- 【leetcode】Binary Tree Level Order Traversal II
- [LeetCode]Binary Tree Level Order Traversal II
- Binary Tree Level Order Traversal II
- Binary Tree Level Order Traversal II
- [Leetcode]Binary Tree Level Order Traversal II
- [leetcode]Binary Tree Level Order Traversal II
- Binary Tree Level Order Traversal II
- HDU ACM 5254 棋盘占领->暴力枚举
- Android学习 - Material Design设计规范
- LeetCode 19: Remove Nth Node From End of List
- [Android Studio 权威教程]Windows下安装Android Studio
- java.lang.ClassNotFoundException: org.apache.http.util.Args
- Binary Tree Level Order Traversal II
- HDOJ 2018 母牛的故事
- ORA-01940:无法删除当前已链接的用户
- 终于解决“Git Windows客户端保存用户名与密码”的问题
- 文本处理
- iOS开发系列--UITableView全面解析
- LeetCode 20: Valid Parentheses
- 老鸟的Python入门教程
- JDBC连接到sql server2008