博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode----102. Binary Tree Level Order Traversal
阅读量:4112 次
发布时间:2019-05-25

本文共 1002 字,大约阅读时间需要 3 分钟。

链接:

大意:

层次遍历二叉树。要求按层次从左到右输出每层的节点值。例子:

思路:

层次遍历,使用两个变量ll以及l记录当前层的最后一个节点和下一层加入到队列中的元素

代码:

/** * Definition for a binary tree node. * public class TreeNode { *     int val; *     TreeNode left; *     TreeNode right; *     TreeNode(int x) { val = x; } * } */class Solution {    public List
> levelOrder(TreeNode root) { List
> res = new ArrayList<>(); if (root == null) return res; LinkedList
queue = new LinkedList<>(); TreeNode l = root, ll = root; // l为当前加入到队列的最后一个元素 ll为上一层的最末尾元素 queue.addLast(root); List
tmp = new ArrayList<>(); while (!queue.isEmpty()) { TreeNode node = queue.removeFirst(); tmp.add(node.val); if (node.left != null) { queue.addLast(node.left); l = node.left; } if (node.right != null) { queue.addLast(node.right); l = node.right; } if (node == ll) { res.add(new ArrayList<>(tmp)); tmp = new ArrayList<>(); ll = l; } } return res; }}

结果:

结论:

层次遍历的实现 

 

 

转载地址:http://mtesi.baihongyu.com/

你可能感兴趣的文章
自定义 select 下拉框 多选插件
查看>>
fastcgi_param 详解
查看>>
poj 1976 A Mini Locomotive (dp 二维01背包)
查看>>
MODULE_DEVICE_TABLE的理解
查看>>
db db2_monitorTool IBM Rational Performace Tester
查看>>
postgresql监控工具pgstatspack的安装及使用
查看>>
【JAVA数据结构】双向链表
查看>>
【JAVA数据结构】先进先出队列
查看>>
乘法逆元
查看>>
Objective-C 基础入门(一)
查看>>
Flutter Boost的router管理
查看>>
iOS开发支付集成之微信支付
查看>>
C++模板
查看>>
【C#】如何实现一个迭代器
查看>>
【C#】利用Conditional属性完成编译忽略
查看>>
DirectX11 光照演示示例Demo
查看>>
VUe+webpack构建单页router应用(一)
查看>>
Node.js-模块和包
查看>>
(python版)《剑指Offer》JZ01:二维数组中的查找
查看>>
管理用户状态——Cookie与Session
查看>>