LeetCode--No.102--Binary Tree Level Order Traversal
来源:互联网 发布:mac safari 缓存路径 编辑:程序博客网 时间:2024/05/17 03:00
asb
asdfsadf
asdf
asdf
sdf
/** * 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>> levelOrder(TreeNode root) { List<List<Integer>> res = new ArrayList<List<Integer>>(); if (root == null) return res; List<TreeNode> currlayer = new ArrayList<TreeNode>(); currlayer.add(root); while(!currlayer.isEmpty()){ List<TreeNode> nextlayer = new ArrayList<TreeNode>(); List<Integer> currvalue = new ArrayList<Integer>(); for(TreeNode node : currlayer){ currvalue.add(node.val); if(node.left != null) nextlayer.add(node.left); if(node.right != null) nextlayer.add(node.right); } res.add(currvalue); currlayer = nextlayer; } return res; }}
用Queue. 貌似没什么区别
public class Solution { public List<List<Integer>> levelOrder(TreeNode root) { List<List<Integer>> res = new ArrayList<List<Integer>>(); if (root == null) return res; Queue<TreeNode> currlayer = new LinkedList<TreeNode>(); currlayer.add(root); while(!currlayer.isEmpty()){ Queue<TreeNode> nextlayer = new LinkedList<TreeNode>(); List<Integer> currvalue = new ArrayList<Integer>(); while(!currlayer.isEmpty()){ TreeNode node = currlayer.remove(); currvalue.add(node.val); if (node.left != null) nextlayer.add(node.left); if(node.right != null) nextlayer.add(node.right); } res.add(currvalue); currlayer = nextlayer; } return res; }}
之前一直在想着清空的事情。因为想要把nextlayer的结点复制到currlayer上面。然后nextlayer清空。用来存储下一次的。
也想要把currlayer清空。存储下一票。
然而其实很简单,把它们写成循环内的局部变量就可以了。每次都会新建,不用考虑清空的问题。
0 0
- Leetcode NO.102 Binary Tree Level Order Traversal
- LeetCode--No.102--Binary Tree Level Order Traversal
- Leetcode 102 Binary Tree Level Order Traversal
- LeetCode(102)Binary Tree Level Order Traversal
- LeetCode 102 Binary Tree Level Order Traversal
- LeetCode: Binary Tree Level Order Traversal [102]
- [leetcode 102]Binary Tree Level Order Traversal
- [LeetCode 102]Binary Tree Level Order Traversal
- leetCode #102 Binary Tree Level Order Traversal
- leetcode-102 Binary Tree Level Order Traversal
- leetcode || 102、Binary Tree Level Order Traversal
- leetcode #102Binary Tree Level Order Traversal
- Leetcode[102]-Binary Tree Level Order Traversal
- LeetCode 102 Binary Tree Level Order Traversal
- LeetCode---(102)Binary Tree Level Order Traversal
- leetcode 102 Binary Tree Level Order Traversal
- leetcode[102]:Binary Tree Level Order Traversal
- Leetcode # 102 Binary Tree Level Order Traversal
- 蓝桥杯 ADV-108算法提高 分数统计
- 多线程编程摘录(二): 线程管理(2)
- Leetcode Subsets
- 蓝桥杯 ADV-104算法提高 打水问题
- fwrite与xxd这对黄金搭档帮我定位出乱码问题------无法打印日志时如何打日志?
- LeetCode--No.102--Binary Tree Level Order Traversal
- Android登陆背景移动渐变
- HttpSession对象
- Leetcode Clone Graph
- 蓝桥杯 ADV-83算法提高 寻找三位数
- JSP定义和四大范围
- openGL的初步入门
- 关于坐标系转换与点在坐标系之间的转换
- 【最短路径】:Dijkstra算法、SPFA算法、Bellman-Ford算法和Floyd-Warshall算法