Binary Tree Level Order Traversal
来源:互联网 发布:cloudify 教程 ubuntu 编辑:程序博客网 时间:2024/05/22 10:42
Description:
Given a binary tree, return the level order traversal of its nodes’ values. (ie, from left to right, level by level)
问题描述:
按层序遍历
二叉树,将每层的元素按List的形式存储。
Ex:
3
/ \
9 20
/ \
15 7
print:
[
[3],
[9,20],
[15,7]
]
解法一:
思路:
这道题用辅助队列Queue queue 存储树节点,用levelNum = queue.size();存储每层结点的个数,在外循环队列非空的情况下
内循环中:
for(int i = 0; i < levelNum; i++){ if(queue.peek().left != null) queue.offer(queue.peek().left); if(queue.peek().right != null) queue.offer(queue.peek().right); sublist.add(queue.poll().val); }
peek().left查左子树的结点,不为空,压入队列queue.offer(queue.peek().left); 右子树同理。然后在取出并移除队列中的元素到subList
Code:
/** * 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) { Queue<TreeNode> queue = new LinkedList<TreeNode>(); List<List<Integer>> wrapList = new LinkedList<List<Integer>>(); if(root == null) return wrapList; queue.offer(root); while(!queue.isEmpty()){ int levelNum = queue.size(); List<Integer> sublist = new LinkedList<Integer>(); for(int i = 0; i < levelNum; i++){ if(queue.peek().left != null) queue.offer(queue.peek().left); if(queue.peek().right != null) queue.offer(queue.peek().right); sublist.add(queue.poll().val); } wrapList.add(sublist); } return wrapList; }}
0 0
- Binary Tree Level Order Traversal
- Binary Tree Level Order Traversal
- Binary Tree Level Order Traversal
- Binary Tree Level Order Traversal
- Binary Tree Level Order Traversal
- Binary Tree Level Order Traversal
- Binary Tree Level Order Traversal
- Binary Tree Level Order Traversal
- Binary Tree Level Order Traversal
- Binary Tree Level Order Traversal
- Binary Tree Level Order Traversal
- Binary Tree Level Order Traversal
- Binary Tree Level Order Traversal
- Binary Tree Level Order Traversal
- Binary Tree Level Order Traversal
- Binary Tree Level Order Traversal
- Binary Tree Level Order Traversal
- Binary Tree Level Order Traversal
- So hard so brave --y\
- jsp错误 According to TLD, tag form:input must be empty, but is not
- 常用的meta标签
- HDU 5882 Balanced Game
- 9.5.3
- Binary Tree Level Order Traversal
- sentry客户端raven黑魔法一例
- 逆向汇编的基本知识梳理
- 数学建模模拟退火法MATLAB程序参考模板
- 我为什么不看好微信小程序
- UVa1585 得分 算法竞赛入门经典第二版CH-2习题3-1
- 9.5.5
- PAT乙级(Basic Level)真题1004
- QPoint和QSize