leetcode-103二叉树的锯齿形层序遍历「建议收藏」

leetcode-103二叉树的锯齿形层序遍历「建议收藏」给定一个二叉树,返回其节点值的锯齿形层序遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。例如:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回锯齿形层序遍历如下:[ [3], [20,9], [15,7]]/** * Definition for a binary tree node. * struct TreeNode { * int

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

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

例如:
给定二叉树 [3,9,20,null,null,15,7],

    3
   / \
  9  20
    /  \
   15   7
返回锯齿形层序遍历如下:

[
  [3],
  [20,9],
  [15,7]
]
/** * 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:
    struct Node{ 
   
        int level;
        TreeNode *p;
        Node(int val,TreeNode *p):level(val),p(p){ 
   };
    };
    vector<vector<int>> zigzagLevelOrder(TreeNode* root) { 
   
        vector<vector<int>>res;
        if(root == NULL)return res;
        int cnt = 0;
        queue<Node>q;
        deque<Node>dq;
        q.push(Node(0,root));
        while(!q.empty()){ 
   
            while(!q.empty()){ 
   
                Node t = q.front();
                if(cnt == t.level){ 
   
                    vector<int>t;
                    res.push_back(t);
                    cnt ++;
                }
                res[res.size() - 1].push_back(t.p->val);
                q.pop();
                int level = t.level;
                if((level & 1) == 0){ 
   
                    if(t.p->left)dq.push_back(Node(level + 1,t.p->left));
                    if(t.p->right)dq.push_back(Node(level + 1,t.p->right));
                }
                else{ 
   
                    if(t.p->right)dq.push_back(Node(level + 1,t.p->right));
                    if(t.p->left)dq.push_back(Node(level + 1,t.p->left));
                }
            }
            while(!dq.empty()){ 
   
                q.push(dq.back());
                dq.pop_back();
            }
        }
        return res;
    }
};
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/168702.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • DO-218AB封装,SM8T系列,SM8S系列加强版,汽车级TVS二极管

    DO-218AB封装,SM8T系列,SM8S系列加强版,汽车级TVS二极管TVS二极管SM8S系列的升级版SM8T系列上市了。关于SM8T系列单向TVS二极管,您知道多少呢?SM8T系列TVS二极管,相对于SM8S系列而言,可靠性更高、稳定性更强、低漏电流、更出色的钳位能力、低正向压降,符合AEC-Q101认证标准,并可通过ISO7637-25a/5b和ISO16750-25a/5b抛负载测。SM8T系列TVS二极管上市以来,深受广大新老客户的青睐和支持。SM8T系列TVS二极管主要用于敏感电子设备、感应负载开关和照明引起的瞬态电压保护,特别适用于汽车抛负载保护应用。

    2022年9月23日
    3
  • gis地理加权回归步骤_地理加权回归权重

    gis地理加权回归步骤_地理加权回归权重内容导读1)回归概念介绍;2)探索性回归工具(解释变量的选择)使用;3)广义线性回归工具(GLR)使用;*加更:广义线性回归工具的补充内容4)地理加权回归工具(GWR)使用+小结。说明:本节是这个学习笔记最后一部分。PART/04地理加权回归工具(GWR)使用上一节我们讲了GLR广义线性回归,它是一种全局模型,可以构造出最佳描述研究区域中整体数据关系的方程。如果这些关系在研究区域中是一致的,则GLR回归方程可以对这些关系进行很好的建模。不过,当这些关系在研

    2022年10月6日
    5
  • idea怎么查看自己填写的激活码【在线注册码/序列号/破解码】

    idea怎么查看自己填写的激活码【在线注册码/序列号/破解码】,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月18日
    67
  • java控制台输入数组_Java控制台输入数组并逆序输出的方法实例

    java控制台输入数组_Java控制台输入数组并逆序输出的方法实例输入一个数组,然后颠倒次序进行输出,这种算法在程序开发中经常用到,下面我们通过一个小实例来看看怎么实现在控制台输入一个数组,并让其逆序输出的。源码:importjava.util.Scanner;publicclassTest01{publicstaticvoidmain(String[]args){System.out.println(“请输入五个数”);int[]l=newi…

    2022年6月26日
    33
  • DOS命令Copy 合并文件

    DOS命令Copy 合并文件我们都知道DOS命令Copy的主要作用是复制文件,可是你是否知道,它还有一个作用是合并文件呢?一般情况下,它主要用于合并相同类型的文件,比如将两个文本文件合并为一个文本文件、将两个独立的MPEG视频文件合并为一个连续的视频文件等。那么,如果用它合并两个不同类型的文件,结果会怎样呢?笔者发现,巧妙地将一个文本文件合并到一个非文本文件中,可以实现隐藏秘密的作用。一起来看看吧。比如你有一段私人信息…

    2022年7月18日
    31
  • 迈克菲杀毒软件创始人(John McAfee)被发现在监狱死亡「建议收藏」

    迈克菲杀毒软件创始人(John McAfee)被发现在监狱死亡「建议收藏」律师近日告诉路透社,西班牙高等法院批准将出生于英国的美国科技企业家JohnMcAfee引渡到美国后,周三他在巴塞罗那监狱自杀身亡。McAfee的律师JavierVillalba表示,今年75岁的迈克菲杀毒软件创始人约翰·迈克菲日前被发现死于位于巴塞罗那一家监狱的牢房中。而死亡时间刚好是西班牙法院判决他被引渡回美国几个小时后。这位反病毒软件先驱在九个月的监禁中因绝望而上吊。75岁的McAfee在上个月的法庭听证会上表示,鉴于他这个年纪,如果在美国被定罪,他将在监狱中度过余生。他说:“我希望..

    2022年9月23日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号