- 浏览: 18997 次
- 性别:
- 来自: 北京
文章分类
最新评论
题目描述
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]
]
解题思路
本题的解题思路还是二叉树的层序遍历。因为要每次不同处理,用到了两个队列的方法,一个队列保存当前层的节点,另一个队列保存下一层的节点。
相关知识点
(1)将一个list中的值全部复制到另一个list中
(2)对ArrayList中的元素排序
自己的代码
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]
]
解题思路
本题的解题思路还是二叉树的层序遍历。因为要每次不同处理,用到了两个队列的方法,一个队列保存当前层的节点,另一个队列保存下一层的节点。
相关知识点
(1)将一个list中的值全部复制到另一个list中
list.addAll(otherList);//直接把要复制的list添加到目的list中就可以了。
(2)对ArrayList中的元素排序
Collections.sort(list);//将list进行排序,升序
自己的代码
package leetcode; import java.util.ArrayList; import java.util.Collections; import java.util.LinkedList; import java.util.List; import java.util.Queue; /*class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(int x) { val = x; } }*/ public class BinaryTreeLevelOrderTraversal { public List<List<Integer>> levelOrder(TreeNode root) { List<List<Integer>> list = new ArrayList<List<Integer>>(); if(root == null) return list; Queue<TreeNode> queue1 = new LinkedList<TreeNode>(); Queue<TreeNode> queue2 = new LinkedList<TreeNode>(); queue2.add(root); while(!queue2.isEmpty()){ queue1.addAll(queue2); queue2.clear(); List<Integer> tempList = new ArrayList<Integer>(); while(!queue1.isEmpty()){ TreeNode head = queue1.poll(); tempList.add(head.val); if(head.left != null) queue2.add(head.left); if(head.right != null) queue2.add(head.right); } //Collections.sort(tempList); list.add(tempList); } return list; } public static void main(String[] args) { TreeNode node1 = new TreeNode(3); TreeNode node2 = new TreeNode(9); TreeNode node3 = new TreeNode(20); TreeNode node4 = new TreeNode(15); TreeNode node5 = new TreeNode(17); node1.left = node2; node1.right = node3; node3.left = node4; node3.right = node5; BinaryTreeLevelOrderTraversal btot = new BinaryTreeLevelOrderTraversal(); System.out.println(btot.levelOrder(node1).toString()); } }
发表评论
-
Java中String与StringBuffer的区别
2014-10-29 21:07 297String和StringBuffer的区别,网上资料可以说 ... -
String to Integer (atoi)
2014-10-29 17:13 397题目描述 Implement atoi to convert ... -
Implement strStr()
2014-10-28 15:17 282题目描述 Implement strStr(). Retu ... -
Valid Palindrome
2014-10-23 10:32 418题目描述 Given a string, determine ... -
ZigZag Conversion
2014-10-22 19:51 340题目描述 The string "PAYPALIS ... -
Add Binary
2014-10-22 19:43 300题目描述 Given two binary strings, ... -
Longest Common Prefix
2014-10-22 19:44 326题目描述 Write a function to find t ... -
Count and Say
2014-10-22 19:44 345题目描述 The count-and-say sequence ... -
Valid Sudoku
2014-10-21 10:22 352题目描述 Determine if a Sudoku is v ... -
Valid Parentheses
2014-10-21 09:41 321题目描述 Given a string containing ... -
Palindrome Number
2014-10-21 09:41 343题目描述 Determine whether an integ ... -
Length of Last Word
2014-10-21 09:41 355题目描述 Given a string s consists ... -
Minimum Depth of Binary Tree
2014-10-21 09:41 306题目描述 Given a binary tree, find ... -
Remove Nth Node From End of List
2014-10-20 16:36 255题目描述 Given a linked list, remov ... -
Path Sum
2014-10-20 15:37 292题目描述 Given a binary tree and a ... -
Binary Tree Level Order Traversal II
2014-10-20 11:17 230题目描述 Given a binary tree, retur ... -
Pascal's Triangle II
2014-10-20 10:07 255题目描述 Given an index k, return t ... -
Pascal's Triangle
2014-10-19 12:24 316题目描述 Given numRows, generate th ... -
Plus One
2014-10-19 11:51 334题目描述 Given a non-negative numbe ... -
Merge Sorted Array
2014-10-18 10:45 396题目描述 Given two sorted integer a ...
相关推荐
我的个人微信公众号:Microstrong 微信公众号ID:MicrostrongAI 微信公众号介绍:Microstrong(小强)同学主要研究机器学习、深度学习、计算机视觉、智能对话系统相关内容,分享在学习过程中的...102. Binary Tree Leve
Binary Tree Zigzag Level Order Traversal Recover Binary Search Tree Same Tree Symmetric Tree Balanced Binary Tree Flatten Binary Tree to Linked List Populating Next Right Pointers in Each Node II ...
102-Binary Tree Level Order Traversal199-Binary Tree Right Side View:层次遍历的一个运用树的构造给出前中后序的序列中的两个,构造一棵树。递归。前序 parent left-child right-child中序 left-child parent ...
Binary Search Tree - Java Recursive - Java Iterative - Java Inorder 0099 Recover Binary Search Tree - Java Recursive 0101 Symmetric tree - Java Recursive - Java Iterative - C Recursive - ...
102 Binary Tree Level Order Traversal.js(二叉树级订单Traversal.js) 103 Binary Tree Zigzag Level Order Traversal.js(二叉树之字形级别顺序Traversal.js) 104 Binary Tree.js的最大深度 105从Preorder和...
https://leetcode.com/problems/binary-tree-level-order-traversal/ Binary Tree Level Order Traversal 103 https://leetcode.com/problems/binary-tree-zigzag-level-order-traversal/ Binary Tree Zigzag Level ...
Now we have a serial of numbers. Please build a Binary Search Tree with them. Then output its level-order traversal.
leetcode卡 LeetCode 记录一下再LeetCode上刷的题,坚持每天刷一道吧 2017.06.12 打卡[LeetCode 2. Add ...Level Order Traversal II], Tree/BFS 2017.06.20 打卡[LeetCode 324. Wiggle Sort II], S
Traversal II 144 二叉树的前序遍历 145 二叉树的后序遍历 150 逆波兰表达式求值 167 两数之和 II - 输入有序数组 199 二叉树的右视图 每天一算:Binary Tree Right Side View 203 移除链表元素 206 反转
A Binary Search Tree (BST) is recursively defined as a binary tree which has the following properties: The left subtree of a... You are supposed to output the level order traversal sequence of this BST.
leetcode下载 ...Traversal II 136 只出现一次的数字 2019-01-16 144 二叉树的前序遍历 145 二叉树的后序遍历 146 LRU缓存机制 LRU缓存机制 2019-01-25 Made by Jun chen 150 逆波兰表达式求值 167 两数之
A Binary Search Tree (BST) is recursively defined as a binary tree which has the following properties: The left subtree of a... You are supposed to output the level order traversal sequence of this BST.
[102_binary-tree-level-order-traversal.cpp] [103_binary-tree-zigzag-level-order-traversal.cpp] [104_maximum-depth-of-binary-tree.cpp] [105_construct-binary-tree-from-preorder-and-inorder-traversal.cpp...
Level Order Traversal 2. Depth First Traversal(Pre-order,Post-order,In-order) 您可以在此处了解有关这些算法的更多信息: 运行项目 1. Clone the repo. 2. Install dependencies using `npm install` or `yarn...
Level-Order-Traversal-Logic-Visualization 使用循环队列 :light_bulb: 如果你喜欢这个项目,请点击星星并在 GitHub 上关注我以获取新的项目更新 点击此处查看项目视频 在 LinkedIn 上关注我以获取定期项目更新
102.binary-tree-level-order-traversal (二叉树的层序遍历) 104.maximum-depth-of-binary-tree (二叉树的最大深度) 105.construct-binary-tree-from-preorder-and-inorder-traversal (从前序与中序遍历序列构造...
leetcode中文版车鸟 一组用python编写的算法。 种类 冒泡排序 插入排序 归并排序 桶排序 计数排序 基数排序 ...balance_binary_tree ...binary_tree_inorder_traversal ...binary_tree_level_order_traversal_I
leetcode中文版车鸟 一组用python编写的算法。 种类 冒泡排序 插入排序 归并排序 桶排序 计数排序 基数排序 ...balance_binary_tree ...binary_tree_inorder_traversal ...binary_tree_level_order_traversal_I
cout<<" traversal in levelorder ... 广度优先遍历二叉树"; cout求某结点的双亲"; cout<<" calculate the depth of the tree ... 求该树的深度"; cout<<" calculator the leaf of the tree ... 求该树叶子...
leetcode 树节点力码 ...binary tree, return the level order traversal of its nodes' values. (ie, from left to right, level by level). Runtime: 8 ms, faster than 100.00% of C++ online submi