news 2026/3/30 20:40:39

day151—双端队列—找树左下角的值(LeetCode-513)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
day151—双端队列—找树左下角的值(LeetCode-513)

题目描述

给定一个二叉树的根节点root,请找出该二叉树的最底层 最左边节点的值。

假设二叉树中至少有一个节点。

示例 1:

输入:root = [2,1,3]输出:1

示例 2:

输入:[1,2,3,4,null,5,6,null,null,7]输出:7

提示:

  • 二叉树的节点个数的范围是[1,104]
  • -231 <= Node.val <= 231 - 1

解决方案:

这段代码的核心功能是找到二叉树最底层最左侧的节点值,采用「层序遍历(BFS)+ 优先入队右子节点」的技巧实现,时间复杂度O(n)n为节点数),空间复杂度O(n)(队列存储节点开销),是该问题的简洁高效解法。

核心逻辑

代码利用队列实现层序遍历,但通过调整子节点入队顺序(先右后左),让最后遍历到的节点恰好是 “最底层最左侧” 的节点,无需记录层数:

  1. 初始化
    • 用双端队列deq存储待遍历节点,初始加入根节点;
    • ans记录结果,初始化为根节点值(兜底空树 / 单节点场景);
  2. 层序遍历循环:只要队列非空,持续遍历:
    • 取出队列头部节点node,并更新ans为该节点的值;
    • 核心技巧:先将右子节点入队,再将左子节点入队(改变常规的 “先左后右” 顺序);
  3. 返回结果:遍历结束时,ans最后一次更新的值就是 “最底层最左侧” 节点的值(因为先遍历右节点,最后遍历到的必然是最底层最左节点)。

总结

  1. 核心思路:通过「先右后左」的入队顺序,让层序遍历的最后一个节点就是 “最底层最左侧” 节点,无需统计层数或记录每一层的第一个节点;
  2. 关键细节:队列遍历采用 “取头→更新结果→右子入队→左子入队” 的顺序,保证遍历到最底层时,最后一个节点是最左侧的;
  3. 效率特点:每个节点仅入队 / 出队一次,时间O(n);队列空间开销取决于树的宽度(最坏为最后一层节点数),是该问题的最优解法之一。

函数源码:

/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} * TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {} * }; */ class Solution { public: int findBottomLeftValue(TreeNode* root) { deque<TreeNode*> deq={root}; int ans=root->val; while(!deq.empty()){ TreeNode* node=deq.front(); deq.pop_front(); ans=node->val; if(node->right){ deq.push_back(node->right); } if(node->left){ deq.push_back(node->left); } } return ans; } };
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/29 3:35:52

中文文本填空避坑指南:用BERT镜像少走弯路

中文文本填空避坑指南&#xff1a;用BERT镜像少走弯路 1. 引言 1.1 业务场景描述 在自然语言处理&#xff08;NLP&#xff09;的实际应用中&#xff0c;中文语义填空是一项高频且关键的任务。无论是教育领域的智能题库生成、内容创作中的自动补全&#xff0c;还是语法纠错与…

作者头像 李华
网站建设 2026/3/26 16:17:28

NeoVerse:用百万单目视频打开4D世界模型的大门

0. 引言 在人工智能领域&#xff0c;空间智能一直是研究的前沿方向。李飞飞团队提出的Marble模型虽然在空间智能方面取得了突破性进展&#xff0c;但其应用场景仍局限于静态环境&#xff0c;本质上属于3D世界模型的范畴。相比之下&#xff0c;4D世界模型作为空间智能的演进形态…

作者头像 李华
网站建设 2026/3/25 17:26:19

开发者学习指南:蓝牙低功耗安全(1)

1. 引言 关于本学习指南 本资源是面向软件开发人员及其他技术岗位人员的教学资料,受众需涉及蓝牙低功耗技术的相关工作。它聚焦于蓝牙低功耗(LE)在搭配通用访问规范(GAP)与通用属性规范(GATT)使用时的安全能力(如图 1 所示)。这类设备有时也被称为 “蓝牙可连接设备…

作者头像 李华
网站建设 2026/3/28 22:09:20

AI写作大师Qwen3-4B性能优化:加速文本生成的5种方法

AI写作大师Qwen3-4B性能优化&#xff1a;加速文本生成的5种方法 1. 引言 1.1 业务场景描述 随着大模型在内容创作、代码生成和逻辑推理等领域的广泛应用&#xff0c;用户对AI响应速度和生成质量的要求日益提升。基于 Qwen/Qwen3-4B-Instruct 模型构建的“AI写作大师”系统&a…

作者头像 李华
网站建设 2026/3/29 0:44:16

避开常见误区!正确使用VibeThinker-1.5B的姿势

避开常见误区&#xff01;正确使用VibeThinker-1.5B的姿势 在大模型参数规模不断膨胀的今天&#xff0c;一个仅含15亿参数的小型语言模型却在数学与编程推理任务中崭露头角——这正是微博开源的 VibeThinker-1.5B 所带来的技术冲击。它以极低的训练成本&#xff08;7,800美元&…

作者头像 李华
网站建设 2026/3/30 20:49:35

IndexTTS-2-LLM冷启动优化:快速响应语音请求实战教程

IndexTTS-2-LLM冷启动优化&#xff1a;快速响应语音请求实战教程 1. 引言 随着大语言模型&#xff08;LLM&#xff09;在多模态生成领域的深入应用&#xff0c;文本到语音&#xff08;Text-to-Speech, TTS&#xff09;技术正迎来新一轮的演进。传统的TTS系统虽然能够实现基本…

作者头像 李华