LeetCode Binary Tree Level Order Traversal
来源:互联网 发布:团队协作软件 编辑:程序博客网 时间:2024/06/13 23:51
Description:
Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, level by level).
For example:
Given binary tree {3,9,20,#,#,15,7}
,
3 / \ 9 20 / \ 15 7
return its level order traversal as:
[ [3], [9,20], [15,7]]
Solution:
因为要按照level来分层,所以适合用BFS。可以用两种方法,一是在TreeNode类中添加一个表示层次level的int变量;二是重新写一个类,包含了TreeNode以及level;三是像如下的代码中展示的,在BFS的同时记录level的链表。
import java.util.*;public class Solution {public List<List<Integer>> levelOrder(TreeNode root) {List<List<Integer>> list = new ArrayList<List<Integer>>();LinkedList<TreeNode> nodes = new LinkedList<TreeNode>();LinkedList<Integer> layers = new LinkedList<Integer>();int preLayer = -1;nodes.add(root);layers.add(0);TreeNode node;int layer;ArrayList<Integer> array = new ArrayList<Integer>();while (!nodes.isEmpty()) {node = nodes.pop();layer = layers.pop();if (node == null)continue;if (layer == preLayer) {array.add(node.val);} else {preLayer = layer;array = new ArrayList<Integer>();list.add(array);array.add(node.val);}nodes.add(node.left);nodes.add(node.right);layers.add(layer + 1);layers.add(layer + 1);}return list;}}
0 0
- LeetCode[Tree]: Binary Tree Level Order Traversal
- *(leetcode) Binary Tree Level Order Traversal (tree)
- [leetcode][tree] Binary Tree Level Order Traversal
- LeetCode: Binary Tree Level Order Traversal
- LeetCode: Binary Tree Zigzag Level Order Traversal
- LeetCode: Binary Tree Level Order Traversal II
- [LeetCode]Binary Tree Level Order Traversal
- [LeetCode]Binary Tree Level Order Traversal II
- [LeetCode]Binary Tree Zigzag Level Order Traversal
- LeetCode Binary Tree Level Order Traversal
- LeetCode Binary Tree Level Order Traversal II
- LeetCode Binary Tree Zigzag Level Order Traversal
- [Leetcode] Binary Tree Level Order Traversal
- [Leetcode] Binary Tree Level Order Traversal II
- [Leetcode] Binary Tree Zigzag Level Order Traversal
- Leetcode: Binary Tree Zigzag Level Order Traversal
- LeetCode Binary Tree Level Order Traversal
- LeetCode Binary Tree Level Order Traversal II
- LeetCode--Search in Rotated Sorted Array II
- java 中的 aes 加密算法
- 顺序栈
- 可记住用户名和密码的登录界面
- 动态规划之摩尔斯电码字典
- LeetCode Binary Tree Level Order Traversal
- Binder通信机制总结
- 1004:函数模板——求数组中的最大元素
- android设备service从C到java API的构成
- html乱码怎问题
- 2015070407 - EffactiveJava笔记 - 第59条 避免不必要地使用受检异常
- 励志做一名程序员,写下来记录一下!20150704
- apache、php -- 环境配置问题
- leetCode 5.Longest Palindromic Substring 解题思路与方法