leetcode102二叉树的层序遍历
Posted lisin-lee-cooper
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode102二叉树的层序遍历相关的知识,希望对你有一定的参考价值。
一.问题描述
-
给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。
-
示例:
-
二叉树:[3,9,20,null,null,15,7],
3
/
9 20
/
15 7
返回其层序遍历结果: -
[
-
[3],
-
[9,20],
-
[15,7]
-
]
二示例代码
public class LevelBinarySearchTree102 {
public static void main(String[] args) {
TreeNode root = new TreeNode(5);
TreeNode node1 = new TreeNode(1);
TreeNode node2 = new TreeNode(9);
TreeNode node3 = new TreeNode(7);
TreeNode node4 = new TreeNode(10);
root.left = node1;
root.right = node2;
node2.left = node3;
node2.right = node4;
List<List<Integer>> result = levelOrder(root);
System.out.println(result);
}
public static List<List<Integer>> levelOrder(TreeNode root) {
List<List<Integer>> resList = new ArrayList<>();
if (root == null) {
return resList;
}
LinkedList<TreeNode> queue = new LinkedList<>();
queue.add(root);
while (!queue.isEmpty()) {
List<Integer> curLevel = new ArrayList<>();
int curLevelNum = queue.size();
for (int i = 0; i < curLevelNum; i++) {
TreeNode curNode = queue.removeFirst();
curLevel.add(curNode.val);
if (curNode.left != null) {
queue.add(curNode.left);
}
if (curNode.right != null) {
queue.add(curNode.right);
}
}
resList.add(curLevel);
}
return resList;
}
}
以上是关于leetcode102二叉树的层序遍历的主要内容,如果未能解决你的问题,请参考以下文章
#yyds干货盘点# leetcode-102. 二叉树的层序遍历