首页 > 其他分享 >力扣103. 二叉树的锯齿形层次遍历

力扣103. 二叉树的锯齿形层次遍历

时间:2024-12-04 22:31:35浏览次数:7  
标签:ans1 力扣 flag que 二叉树 ans push 103 vec

链接:103. 二叉树的锯齿形层序遍历 - 力扣(LeetCode)

vector<vector<int>>vec;
        if(root==nullptr)return vec;
        queue<TreeNode*>que;
        que.push(root);
        //true代表从左到右
        //false代表从右到左
        bool flag=true;
        while(!que.empty())
        {
            vector<int>ans;
            int size=que.size();
            for(int i=0;i<size;i++)
            {
                TreeNode* cur=que.front();
                //ans中的值都是从左到右的元素
                ans.push_back(cur->val);
                que.pop();
                if(cur->left)que.push(cur->left);
                if(cur->right)que.push(cur->right);
            }
            //如果flag为true,那么就是代表的从左到右,那么就把ans放到vec中
            if(flag)
            {
                flag=false;
                vec.push_back(ans);
                continue;
            }
            //否则说明就是从右到左
            if(!flag)
            {
                //那么就再定义一个数组ans1来反向获取ans的元素,然后把ans1放到vec中
                vector<int>ans1;
                for(int i=ans.size()-1;i>=0;i--)ans1.push_back(ans[i]);
                vec.push_back(ans1);
                flag=true;
            }
        }
        return vec;

思路:其实就是在层次遍历的基础上加上数组的翻转。

标签:ans1,力扣,flag,que,二叉树,ans,push,103,vec
From: https://blog.csdn.net/A687479A/article/details/144192127

相关文章

  • 【hot100】二叉树
    文章目录94.二叉树中序遍历(迭代做法是重点)递归解法普通迭代做法morris解法102.二叉树的层序遍历广度优先遍历104.二叉树的最大深度递归做法—深度优先搜索226.翻转二叉树递归解法101.对称二叉树递归做法迭代做法543.二叉树的直径递归做法108.将有序数组转换......
  • YOLOv8-ultralytics-8.2.103部分代码阅读笔记-errors.py
    errors.pyultralytics\utils\errors.py目录errors.py1.所需的库和模块2.classHUBModelError(Exception): 1.所需的库和模块#UltralyticsYOLO......
  • 代码随想录算法训练营第十六天(LeetCode513.找树左下角的值;LeetCode112.路径总和;LeetCo
    LeetCode513.找树左下角的值题目连接:找树左下角的值题目连接代码递归法/***Definitionforabinarytreenode.*publicclassTreeNode{*intval;*TreeNodeleft;*TreeNoderight;*TreeNode(){}*TreeNode(intval){this.......
  • 数据结构与算法-04二叉树-01
    初识二叉树(Binary)树结构树是由n(n≥0)个结点组成的有限集合。当n=0时,称为空树;当n>0时,有一个特殊的节点称为根结点(root),它没有前驱结点;其它结点分为m棵互不相交的子树。什么是二叉树?二叉树是一种最典型的非线性结构,除叶节点外每个节点最多连接两个子节点......
  • 94. 二叉树的中序遍历
    题目:https://leetcode.cn/problems/binary-tree-inorder-traversal/description/思路:中序遍历非递归算法Java代码如下:importjava.util.*;classTreeNode{intval;TreeNodeleft;TreeNoderight;TreeNode(){}TreeNode(intval){this.val=val;}TreeNode(intva......
  • 全面解析二叉树的层次遍历及其实现
    二叉树的层次遍历(LevelOrderTraversal)是以层为单位,从根节点开始逐层访问节点的遍历方法。在很多树的算法中,层次遍历是基础。本文将详细解析层次遍历的原理,提供Java和Python的实现,以及常见扩展应用。一、层次遍历的定义与特点1.1什么是层次遍历?层次遍历是指按照二叉......
  • 【力扣】3274. 检查棋盘方格颜色是否相同
    一、题目给你两个字符串coordinate1和coordinate2,代表8x8国际象棋棋盘上的两个方格的坐标。以下是棋盘格的参考图:如果这两个方格颜色相同,返回true,否则返回false。坐标总是表示有效的棋盘方格。坐标的格式总是先字母(表示列),再数字(表示行)。示例:输入:coordinate1......
  • LCR 043.完全二叉树(中等)(主站919)
    https://leetcode.cn/problems/NaqhDT/https://leetcode.cn/problems/complete-binary-tree-inserter/难度:☆☆☆题目:完全二叉树是每一层(除最后一层外)都是完全填充(即,节点数达到最大,第n层有2n-1个节点)的,并且所有的节点都尽可能地集中在左侧。设计一个用完全二叉树......
  • YOLOv8-ultralytics-8.2.103部分代码阅读笔记-checks.py
    checks.pyultralytics\utils\checks.py目录checks.py1.所需的库和模块2.defparse_requirements(file_path=ROOT.parent/"requirements.txt",package=""): 3.defparse_version(version="0.0.0")->tuple: 4.defis_ascii(s)->bool......
  • YOLOv8-ultralytics-8.2.103部分代码阅读笔记-instance.py
    instance.pyultralytics\utils\instance.py目录instance.py1.所需的库和模块2.def_ntuple(n): 3.classBboxes: 4.classInstances: 1.所需的库和模块#UltralyticsYOLO......