[LeetCode]Binary Tree Level Order Traversal II(JAVA)
来源:互联网 发布:双色球公式计算法 编辑:程序博客网 时间:2024/06/10 07:42
这道题我真的是使出了洪荒之力啊
/** * 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) { TreeNode p = root; List <List<Integer>> allNum = new LinkedList<List<Integer>>(); Map<TreeNode,Integer> nodeMap = new LinkedHashMap<TreeNode,Integer>(); List<TreeNode> nodeList = new LinkedList<TreeNode>(); if(root ==null) return allNum; nodeList.add(root); nodeMap.put(root,0); //Iterator it = nodeList.iterator(); int level = 0,preLevel = -1,i = 0; while(i<nodeList.size()){ p = (TreeNode)nodeList.get(i++); level = nodeMap.get(p); if(p.left !=null){ nodeMap.put(p.left,level+1); nodeList.add(p.left); //System.out.println(level); } if(p.right != null){ nodeMap.put(p.right,level+1); nodeList.add(p.right); } } Iterator it = nodeList.iterator(); //it = nodeList.iterator(); //level = 0; while(it.hasNext()){ p = (TreeNode)it.next(); try{ level = nodeMap.get((TreeNode)p); } catch (Exception e) { e.printStackTrace (); } if(preLevel == level) (allNum.get(0)).add(p.val); else{ List nList = new LinkedList<Integer>(); nList.add(p.val); allNum.add(0,nList); preLevel = level; } } return allNum; }}在来一种递归的方法
public class Solution { public List<List<Integer>> levelOrderBottom(TreeNode root) { List<List<Integer>> result = new ArrayList<>();traversalTree(root, 0, result);;Collections.reverse(result);return result;}private void traversalTree(TreeNode node, int level, List<List<Integer>> list){if(node == null){return;}if(list.size() <= level){list.add(new ArrayList<Integer>());}list.get(level).add(node.val);traversalTree(node.left, level+1, list);traversalTree(node.right, level+1, list); }}
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
- 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
- [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
- [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
- 【LeetCode】Binary Tree Level Order Traversal II
- [LeetCode] Binary Tree Level Order Traversal II
- Javascript面向对象
- Eclipse启动Tomcat时45秒超时解决方法
- struts2 拦截器
- MyEclipse下创建基于Maven集成junit的web项目教程
- Eclipse Tomcat : Project facet Java version 1.7 is not supported.
- [LeetCode]Binary Tree Level Order Traversal II(JAVA)
- 设计模式学习之路-组合模式
- CentOS 64位 下 JDK8的安装与环境变量配置
- cassandra 集群
- jsp中EL表达式获取数据
- 字符串切分,String和StringUtils的区别
- 自己写一个简单的cordova插件
- Python新手学习基础之数据结构-对数据结构的认知
- 三.装饰者模式