#求二叉树的层序遍历_Java版 @FDDLC
发布日期:2021-06-30 20:56:48
浏览次数:2
分类:技术文章
本文共 1739 字,大约阅读时间需要 5 分钟。
给定一个二叉树,返回该二叉树层序遍历的结果,(从左到右,一层一层地遍历)
例如: 给定的二叉树是{3,9,20,#,#,15,7}, 该二叉树层序遍历的结果是 [ [3], [9,20], [15,7] ]
AC的代码(Java版):
import java.util.ArrayList;import java.util.Arrays;import java.util.LinkedList;class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val, TreeNode left, TreeNode right) { this.val = val; this.left = left; this.right = right; }}public class Solution { public ArrayList> levelOrder(TreeNode root) { ArrayList > answer = new ArrayList<>(); if (root == null) return answer; LinkedList treeNodes = new LinkedList<>(); treeNodes.add(root); while (!treeNodes.isEmpty()) { int levelSize = treeNodes.size(); ArrayList levelValues = new ArrayList<>(); for (int i = 0; i < levelSize; i++) { TreeNode currentNode = treeNodes.poll(); //get and remove the first one levelValues.add(currentNode.val); if (currentNode.left != null) treeNodes.add(currentNode.left); //add to the end if (currentNode.right != null) treeNodes.add(currentNode.right); } answer.add(levelValues); //遍历完一层 } return answer; } public static void printAnswer(ArrayList > answer) { int rowSum = answer.size(); for(int rowIndex = 0; rowIndex < rowSum; rowIndex++) { System.out.println(Arrays.toString(answer.get(rowIndex).toArray())); } } public static void main(String[] args) { TreeNode node5 = new TreeNode(5, null, null); TreeNode node4 = new TreeNode(4, null, null); TreeNode node3 = new TreeNode(3, node4, node5); TreeNode node2 = new TreeNode(2, null, null); TreeNode node1 = new TreeNode(1, node2, node3); printAnswer(new Solution().levelOrder(node1)); }}
转载地址:https://liuxingchang.blog.csdn.net/article/details/109095758 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
初次前来,多多关照!
[***.217.46.12]2024年04月15日 09时55分27秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
51Nod - 1183 编辑距离 (dp)
2019-04-30
ACM 2014 鞍山区域赛 E - Hatsune Miku (dp)
2019-04-30
反向传播&梯度下降 的直观理解程序(numpy)
2019-04-30
ACM 2017 南宁区域赛 Rake it in(对抗搜索)
2019-04-30
CodeForces - 931B World Cup (思维 模拟)
2019-04-30
CodeForces - 996D Suit and Tie (暴力)
2019-04-30
ACM 2017 香港区域赛 E - Base Station Sites(二分)
2019-04-30
ACM 2018 青岛区域赛 J-Books (模拟)
2019-04-30
ACM 2016 沈阳区域赛 E - Counting Cliques (dfs)
2019-04-30
ACM 2017 北京区域赛 J-Pangu and Stones(区间dp)
2019-04-30
HDU - 5643 King's Game (约瑟夫环变式)
2019-04-30
UVA - 1452 Jump (约瑟夫环变式)
2019-04-30
POJ - 3517 And Then There Was One (约瑟夫环变式)
2019-04-30
HDU - 2068 RPG的错排 (错排+组合数)
2019-04-30
CodeForces 591C Median Smoothing(思维 模拟)
2019-04-30
升级yosemite后java出错的解决
2019-04-30
mac || Linux 命令行下实现批量重命名
2019-04-30
java常用类 String面试题
2019-04-30
Windows10下的powershell美化教程
2019-04-30