【力扣刷题练习】103. 二叉树的锯齿形层序遍历

题目描述:

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

题目解答:

cpp 复制代码
class Solution {
public:
    vector<vector<int>> zigzagLevelOrder(TreeNode* root) {
        queue<TreeNode*> q;
        if (root != nullptr)
            q.push(root);
        bool flag = false;
        vector<vector<int>> ans;
        while (!q.empty()) {
            int size = q.size();
            vector<int> v;
            for (int i = 0; i < size; i++) {
                TreeNode* t = q.front();
                q.pop();
                v.push_back(t->val);
                if (t->left)
                    q.push(t->left);
                if (t->right)
                    q.push(t->right);
            }
            if(flag)
                reverse(v.begin(),v.end());
            ans.emplace_back(v);
            flag = !flag;
        }
        return ans;
    }
};

题目思路:

本题思路由【力扣刷题练习】102. 二叉树的层序遍历演变而来

在原有思路以及代码下增加一个布尔型flag变量用以控制遍历顺序,每隔一层调用一次reverse翻转顺序最终实现锯齿形层次遍历。

相关推荐
ZhengEnCi18 分钟前
S10-蓝桥杯 17822 乐乐的积木塔
算法
贾斯汀玛尔斯21 分钟前
每天学一个算法--拓扑排序(Topological Sort)
算法·深度优先
大龄程序员狗哥27 分钟前
第25篇:Q-Learning算法解析——强化学习中的经典“价值”学习(原理解析)
人工智能·学习·算法
exp_add329 分钟前
质数相关知识
算法
小辉同志1 小时前
215. 数组中的第K个最大元素
数据结构·算法·leetcode··快速选择
小O的算法实验室2 小时前
2025年IEEE TITS,基于矩阵的进化计算+面向无线传感器网络数据收集无人机路径规划,深度解析+性能实测
算法·论文复现·智能算法·智能算法改进
OidEncoder2 小时前
编码器分辨率与机械精度的关系
人工智能·算法·机器人·自动化
memcpy02 小时前
LeetCode 2615. 等值距离和【相同元素分组+前缀和;考虑距离和的增量】中等
算法·leetcode·职场和发展
炽烈小老头3 小时前
【 每天学习一点算法 2026/04/22】四数相加 II
学习·算法
alphaTao3 小时前
LeetCode 每日一题 2026/4/20-2026/4/26
算法·leetcode·职场和发展