news 2026/8/10 10:54:46

算法日常・每日刷题--<队列BFS >2

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
算法日常・每日刷题--<队列BFS >2

103. 二叉树的锯齿形层序遍历 - 力扣(LeetCode)103. 二叉树的锯齿形层序遍历 - 给你二叉树的根节点 root ,返回其节点值的 锯齿形层序遍历 。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。 示例 1:[https://assets.leetcode.com/uploads/2021/02/19/tree1.jpg]输入:root = [3,9,20,null,null,15,7]输出:[[3],[20,9],[15,7]]示例 2:输入:root = [1]输出:[[1]]示例 3:输入:root = []输出:[] 提示: * 树中节点数目在范围 [0, 2000] 内 * -100 <= Node.val <= 100https://leetcode.cn/problems/binary-tree-zigzag-level-order-traversal/

题目描述

给你二叉树的根节点root,返回其节点值的锯齿形层序遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。

解题思路

本题是在普通二叉树层序遍历基础上增加锯齿反转的要求。

  1. 使用 BFS 广度优先搜索,借助队列完成层序遍历。
  2. 每次循环开始,获取队列大小sz,代表当前一层的节点总数,循环 sz 次处理整层节点。
  3. 把当前层节点值存入临时数组,同时把左右孩子入队。
  4. 设置层数标记:奇数层正常顺序,偶数层反转数组,实现锯齿效果。
  5. 注意边界:树为空直接返回空集合。

/** * 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: vector<vector<int>> zigzagLevelOrder(TreeNode* root) { vector<vector<int>> ret; if(root==nullptr) return ret; queue<TreeNode*> q; q.push(root); int level=1; while(q.size()) { int sz=q.size(); vector<int> tmp; for(int i=0;i<sz;i++) { auto t=q.front(); q.pop(); tmp.push_back(t->val); if(t->left) q.push(t->left); if(t->right) q.push(t->right); } if(level%2==0) reverse(tmp.begin(),tmp.end()); ret.push_back(tmp); level++; } return ret; } };
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/10 10:52:46

AI Token商品化:从算力到流量的商业模式变革与应对策略

1. 从“算力”到“流量”&#xff1a;AI行业的商业模式之变 最近圈子里一个现象讨论得挺热&#xff1a;不少运营商和云服务商&#xff0c;开始把“Token”明码标价&#xff0c;作为一项独立的资源包来卖了。这事儿乍一听有点新鲜&#xff0c;Token不是大模型里用来计费的那个“…

作者头像 李华
网站建设 2026/8/10 10:51:58

ollama下载慢问题解决方案与网络优化技巧

1. 解决ollama官网下载安装包慢的实用方案遇到ollama官网下载速度慢的问题时&#xff0c;很多开发者第一反应是寻找替代下载源。实际上&#xff0c;这个问题背后涉及到网络基础设施、CDN分发策略和下载协议选择等多个技术层面。作为一款新兴的AI模型部署工具&#xff0c;ollama…

作者头像 李华
网站建设 2026/8/10 10:51:04

影石Ace Pro 2人像拍摄参数预设:4K 60帧+线性视角+FL滤镜实战指南

上周帮朋友拍一个活动花絮&#xff0c;用上了新入手的影石 Ace Pro 2。活动间隙&#xff0c;他凑过来看了一眼回放&#xff0c;问了一句&#xff1a;“你这画面怎么感觉比我拍的通透不少&#xff1f;咱俩不都是4K 60帧吗&#xff1f;” 我笑了笑&#xff0c;没直接回答&#x…

作者头像 李华
网站建设 2026/8/10 10:50:55

5分钟上手Escrcpy:免费高效的Android设备图形化投屏控制方案

5分钟上手Escrcpy&#xff1a;免费高效的Android设备图形化投屏控制方案 【免费下载链接】escrcpy &#x1f4f1; Display and control your Android device graphically with scrcpy. 项目地址: https://gitcode.com/GitHub_Trending/es/escrcpy Escrcpy是一款基于Scrc…

作者头像 李华
网站建设 2026/8/10 10:50:50

软件测试核心理论与现代实践深度解析

1. 测试理论核心知识体系梳理在软件测试领域&#xff0c;理论基础直接决定了测试工程师的思维深度和工作效率。根据我十年面试官的经验&#xff0c;候选人常在这几个核心板块暴露出知识断层&#xff1a;1.1 测试金字塔模型演进传统三层金字塔&#xff08;UI-服务-单元&#xff…

作者头像 李华