博客
关于我
leetcode题解102-二叉树的层序遍历
阅读量:792 次
发布时间:2023-01-31

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

为了解决这个问题,我们需要对给定的二叉树进行层次遍历,并将结果按层顺序返回。层次遍历是指从根节点开始,从左到右逐层访问每个节点。我们可以使用队列来实现层次遍历,具体步骤如下:

方法思路

  • 初始化队列:将二叉树的根节点加入队列。
  • 处理每一层:在每次循环中,处理队列中的所有节点,这些节点构成了当前层的所有节点,按顺序记录它们的值。
  • 处理子节点:对于每个节点,如果它有左子节点或右子节点,将这些子节点加入队列,以便在下一层次处理。
  • 结果记录:每次处理完一层节点后,将这一层的节点值记录到结果列表中。
  • 这种方法利用队列来保持当前层次的节点状态,并在每次循环中处理所有当前层次的节点,逐层记录节点值,从而实现了层次遍历。

    解决码

    import java.util.ArrayList;import java.util.LinkedList;import java.util.List;import java.util.Queue;class Solution {    public List
    > levelOrder(TreeNode root) { List
    > result = new ArrayList<>(); if (root == null) { return result; } Queue
    queue = new LinkedList<>(); queue.add(root); while (!queue.isEmpty()) { int levelSize = queue.size(); List
    currentLevel = new ArrayList<>(); for (int i = 0; i < levelSize; i++) { TreeNode node = queue.poll(); currentLevel.add(node.value); if (node.left != null) { queue.add(node.left); } if (node.right != null) { queue.add(node.right); } } result.add(currentLevel); } return result; }}

    代码解释

  • 初始化结果列表和队列:检查根节点是否为空,并将根节点加入队列。
  • 循环处理每层节点:在每次循环中,获取当前层次的节点数量,按照层次处理每个节点。
  • 记录当前层节点值:将当前层节点的值记录到结果列表中。
  • 处理子节点:将每个节点的左子节点和右子节点加入队列,以便处理下一层次的节点。
  • 这种方法通过逐层处理节点,利用队列来维护当前层次的节点状态,从而高效地完成了层次遍历任务。

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

    你可能感兴趣的文章
    Elasticsearch 时区问题
    查看>>
    Elasticsearch7.3.1启动指定JDK11
    查看>>
    Elasticsearch下载安装
    查看>>
    Elasticsearch入门教程(Elasticsearch7,linux)
    查看>>
    ElasticSearch设置字段的keyword属性
    查看>>
    elasticsearch配置文件里的一些坑 [Failed to load settings from [elasticsearch.yml]]
    查看>>
    Elasticsearch面试题
    查看>>
    element ui 时间日期选择器 el-date-picker 报错 Prop being mutated “placement“
    查看>>
    element 如何使用自定义icon图标
    查看>>
    element-plus的el-date-picker日期范围选择控件,根据开始日期限定结束日期的可选范围为开始日期到开始日期+30天
    查看>>
    element-ui:el-input输入数字-整数和小数
    查看>>
    ElementUI-el-progress改变进度条颜色跟文字样式
    查看>>
    ELK应用日志收集实战
    查看>>
    elTable火狐浏览器换行
    查看>>
    15个Python数据处理技巧(非常详细)零基础入门到精通,收藏这一篇就够了
    查看>>
    2023年深信服、奇安信、360等大厂网络安全校招面试真题合集(附答案),让你面试轻松无压力!
    查看>>
    2024年全国程序员平均薪资排名:同样是程序员,为什么差这么多?零基础到精通,收藏这篇就够了
    查看>>
    0基础成功转行网络安全工程师,年薪30W+,经验总结都在这(建议收藏)
    查看>>
    100个电脑常用组合键大全(非常详细)零基础入门到精通,收藏这篇就够了
    查看>>
    10个程序员可以接私活的平台
    查看>>