news 2026/3/16 11:27:18

【剑斩OFFER】算法的暴力美学——leetCode 103 题:二叉树的锯齿形层序遍历

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【剑斩OFFER】算法的暴力美学——leetCode 103 题:二叉树的锯齿形层序遍历

一、题目描述

二、算法原理

思路:在层序遍历的基础上添加一个标志位。

层序遍历的算法实现:

https://blog.csdn.net/2403_84958571/article/details/156873549?spm=1011.2415.3001.10575&sharefrom=mp_manage_link

标志位:

三、代码实现

/** * 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) { if(root == nullptr) return {}; queue<TreeNode*> que;//队列辅助实现层序遍历 vector<vector<int>> ret;//最终的结果 int num = 0; que.push(root); bool flag = false;//标志位,fase:标识不用逆转数组 while(!que.empty()) { vector<int> tmp; num = que.size(); while(num--) { TreeNode* node = que.front(); tmp.push_back(node->val); if(node->left) que.push(node->left); if(node->right) que.push(node->right); que.pop(); } if(flag)//flag = true { //逆转数组 reverse(tmp.begin(),tmp.end()); flag = false;//下一轮就不用逆转了 } else flag = true; ret.push_back(tmp); } return ret; } };
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/14 11:14:10

Salesforce推出全新升级版Slackbot智能体

Salesforce公司今日正式发布了其大幅增强版的Slackbot人工智能助手&#xff0c;该助手内置于Slack平台中。该公司在去年10月举办的Dreamforce 2025大会上首次展示了这一升级版本。原版Slackbot主要专注于显示通知等相对简单的任务。新版本大幅扩展了该工具可以自动化的使用场景…

作者头像 李华
网站建设 2026/3/13 18:49:42

AI大模型30个核心术语详解,从小白到入门

文章按照AI产品的四层架构&#xff08;基座层、模型层、应用层、用户层&#xff09;详细解释了30个AI领域的重要术语。基座层涵盖算法、算力、数据相关概念&#xff1b;模型层介绍AI核心能力载体&#xff1b;应用层展示AI落地场景&#xff1b;用户层关注AI与用户交互。这些术语…

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

vrrp实例script和 real_server中的HTTP_GET健康检查区别,使用场景总结

Keepalived核心健康检查&#xff1a;VRRP Script & HTTP_GET 在Keepalived高可用集群部署中&#xff0c;健康检查是保障服务连续性的核心机制。其中VRRP实例的script脚本检查与real_server的HTTP_GET检查是最常用的两种方式。 一、核心差异&#xff1a;从检测对象到作用机制…

作者头像 李华
网站建设 2026/3/13 21:41:15

Vue3:泛型类型声明 vs 运行时选项声明 语法对比

Vue 3 提供了两种 props 声明方式&#xff1a;泛型类型声明和运行时选项声明。泛型类型声明&#xff08;defineProps<{prop:Type}>()&#xff09;在编译时进行类型检查&#xff0c;完全支持 TypeScript&#xff0c;适合新项目和追求类型安全的场景。运行时选项声明&#…

作者头像 李华