news 2026/9/3 4:22:02

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/8/28 4:19:56

AI助力科研写作:9大平台助您高效完成学术论文与开题报告

毕业论文季的高效写作需要平衡人工与AI工具的优势。人工创作灵活性高但效率较低&#xff0c;而AI工具能快速生成内容、优化文本重复率并降低AI痕迹。通过多平台实测对比&#xff0c;合理选择AI辅助工具可显著提升开题报告和论文撰写效率&#xff0c;但需注意所有AI产出内容必须…

作者头像 李华
网站建设 2026/9/3 0:18:22

AtCoder Beginner Contest竞赛题解 | AtCoder Beginner Contest 441

​欢迎大家订阅我的专栏&#xff1a;算法题解&#xff1a;C与Python实现&#xff01; 本专栏旨在帮助大家从基础到进阶 &#xff0c;逐步提升编程能力&#xff0c;助力信息学竞赛备战&#xff01; 专栏特色 1.经典算法练习&#xff1a;根据信息学竞赛大纲&#xff0c;精心挑选…

作者头像 李华
网站建设 2026/9/2 23:26:24

医疗边缘用ONNX Runtime加速推理

&#x1f4dd; 博客主页&#xff1a;jaxzheng的CSDN主页 医疗边缘计算的革命&#xff1a;ONNX Runtime如何重塑实时诊断目录医疗边缘计算的革命&#xff1a;ONNX Runtime如何重塑实时诊断 引言&#xff1a;当医疗诊断不再依赖云端 现在时&#xff1a;ONNX Runtime在医疗边缘的落…

作者头像 李华
网站建设 2026/9/2 9:30:57

Qwen2.5-7B多语言支持实战:30+语言处理部署教程

Qwen2.5-7B多语言支持实战&#xff1a;30语言处理部署教程 1. 引言 1.1 业务场景描述 随着全球化业务的不断扩展&#xff0c;企业对多语言自然语言处理&#xff08;NLP&#xff09;能力的需求日益增长。无论是跨国客服系统、本地化内容生成&#xff0c;还是跨语言信息抽取&a…

作者头像 李华
网站建设 2026/9/3 0:25:04

Qwen3-Embedding-0.6B在制度文档分析中的应用效果

Qwen3-Embedding-0.6B在制度文档分析中的应用效果 1. 背景与应用场景 1.1 制度文档管理的挑战 企业在运营过程中积累了大量的制度类文档&#xff0c;涵盖信息安全、合规管理、人力资源、IT运维等多个领域。这些文档通常具有以下特点&#xff1a; 结构复杂&#xff1a;包含章…

作者头像 李华
网站建设 2026/9/3 0:25:04

bge-large-zh-v1.5实战指南:企业知识图谱构建步骤

bge-large-zh-v1.5实战指南&#xff1a;企业知识图谱构建步骤 1. 引言 在企业级知识管理场景中&#xff0c;如何高效地从海量非结构化文本中提取语义信息&#xff0c;并构建具备推理能力的知识图谱&#xff0c;是当前智能搜索、问答系统和推荐引擎的核心挑战。随着大模型技术…

作者头像 李华