按之字形顺序打印二叉树

从C到汇编:单片机汇编语言核心概念迁移指南 本文详细介绍了从C语言迁移到单片机汇编语言的核心概念与实践指南,特别适合嵌入式开发者。文章深入探讨了汇编语言在性能优化、时序控制等方面的独特优势,并提供了变量存储、函数实现、流程控制等关键概念的对应关系,帮助开发者高效掌握汇编编程技巧。 阅读详情

题目:

请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。

分析:
使用两个栈。

struct TreeNode
{
    int val;
    struct TreeNode *left;
    struct TreeNode *right;
    TreeNode( int x ) :
        val( x ), left( NULL ), right( NULL ) {}
};

class Solution
{
public:
    vector<vector<int> > printBinaryTreeAsZhi( TreeNode* pRoot )
    {
        if ( pRoot == NULL )
            return vector<vector<int> >();

        int current = 0;
        int next = 1;

        vector<vector<int> > result;
        vector<int> temp;

        stack<TreeNode*> treeStack[2];

        treeStack[current].push( pRoot );
        while ( !treeStack[0].empty() || !treeStack[1].empty() )
        {
            TreeNode* pNode = treeStack[current].top();
            treeStack[current].pop();

            temp.push_back( pNode->val );

            if ( current == 0 )
            {
                if ( pNode->left != NULL )
                {
                    treeStack[next].push( pNode->left );
                }
                if ( pNode->right != NULL )
                {
                    treeStack[next].push( pNode->right );
                }
            }
            else
            {
                if ( pNode->right != NULL )
                {
                    treeStack[next].push( pNode->right );
                }
                if ( pNode->left != NULL )
                {
                    treeStack[next].push( pNode->left );
                }
            }

            if ( treeStack[current].empty() )
            {
                result.push_back( temp );
                temp.clear();
                current = 1 - current;
                next = 1 - next;
            }
        }
        return result;
    }
};
基于FPGA的BP神经网络Verilog设计与Matlab仿真 BP(Backpropagation)神经网络是一种常见且广泛应用的神经网络类型,通过反向传播算法实现训练和学习。本文将介绍如何使用Verilog语言在FPGA上设计一个简易的BP神经网络,并使用Matlab进行仿真验证。BP神经网络由输入层、隐藏层和输出层组成。在上述Verilog代码中,我们定义了BP神经网络的输入层、隐藏层和输出层的神经元数量,并声明了相应的信号和参数。在上述Verilog代码中,我们定义了BP神经网络的输入层、隐藏层和输出层的神经元数量,并声明了相应的信号和参数。 阅读详情

相关推荐

雷达仿真:FMCW TDMA-MIMO 3D点云获取方法

2 信号建模摘要:通过设置时分复用(TDMA)波形结合FMCW毫米波雷达仿真获取目标的距离、速度和方位角3D点云信息。在本案例中,首先通过发射天线交替发射FMCW波形并通过接收天线依次接收回波信号从而得到雷达原始数据,其次对获取的原始数据依次经行距离、速度、角度估计从而输出目标的3D点云。阅读本文档,你将对TDMA-MIMO雷达的基本原理、毫米波雷达距离估计、速度估计以及角度估计的基本原理有所了解,另外CA-CFAR恒虚警以及MUSIC-DOA估计在本案例中也有所涉及。1 TDMA-MIMO原理。

Poulen的博客 6962

const关键字相关

const作用:const在c中的作用和cpp中的略有不同。在c中经过const修饰的变量并不是绝对的常量,例如Cconst int a = 0; //定义了一个c语言中的常量int *pa = &a; //定义了一个普通指针指向常量a,这中间经过了强制类型转换*pa = 2; //a的值可以通过pa指针修改printf("%d %d\n", a, *pa);

_Findway的博客 258

使用TBtools进行物种间共线性分析

Sequence Toolkit ---Fasta Tools ----ID Prefix (fasta文件)

sunny_dayone的博客 8755

2_3查找树

2_3查找树的定义在一棵含有N个结点的二叉查找树中,我们希望树高为lgNlg_N,这样就能保证所有查找都能在lgNlg_N次比较内结束,就和二分查找一样。2_3查找树可以解决这样的问题:定义:一棵2-3查找树或为一棵空树,或由以下结点组成: 2-结点,含有一个键和两条链接,左链接指向的2-3树种的键都小于该结点,右链接指向的2-3树中的键都大于该结点。 3-结点,含有两个键和三条链接,

_Findway的博客 638

蛋白组学/磷酸化蛋白组学分析笔记-2

如何校正蛋白丰度?磷酸化组学质谱下机处理。

weixin_43029125的博客 1374

SVDD和OCSVM的比较

OCSVM(one class support vector machine)即单类支持向量机,最先提出的文献为:Estimating the support of a high-dimensional distribution.该模型 将数据样本通过核函数映射到高维特征空间,使其具有更良好的聚集性,在特征空间中求解一个最优超平面实现目标数据与坐标原点的最大分离,如图1: 坐标原...

qq_33880788的博客 1万+

获取IMEI号,旧版本

// 获取 IMEI号 private static String getIMEIOld(Context context){ if (ContextCompat.checkSelfPermission(context, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) { ...

qq7915的博客 1876

DDR5内存命令真值表详解:如何正确解析JESD79-5标准中的关键指令

本文深度解析JESD79-5标准中的DDR5内存命令真值表,将其视为动态通信协议进行拆解。详细阐述了1-Cycle与2-Cycle命令的区别、Bank Group寻址机制以及模式寄存器(MR)操作流程,为硬件与固件工程师提供了从信号解析到系统调试的完整实战指南,是理解和优化高性能计算平台内存子系统的核心。

numpy6sculptor的博客 550

NC14 按之字形顺序打印二叉树

描述 给定一个二叉树,返回该二叉树的之字形层序遍历,(第一层从左向右,下一层从右向左,一直这样交替) 例如: 给定的二叉树是{1,2,3,#,#,4,5} 该二叉树之字形层序遍历的结果是 [ [1], [3,2], [4,5] ] 示例1 输入: {1,2,3,#,#,4,5} 复制返回值: [[1],[3,2],[4,5]] import java.util.*; /* public class TreeNode { int val = 0; Tr

搓搓那年时光静好 467

ESP32学习,驱动LED点阵屏,SD卡播放GIF动图

搬运就可以实现效果,如果有不足,请批评指正。下步该学一下如何文章上视频了,老是截图不方便展示效果。

u011625956的博客 1868

SiC MOSFET驱动设计实战:从特性解析到电路优化

本文深入解析SiC MOSFET的核心特性及其驱动电路设计要点,涵盖高温稳定性、快速开关能力等关键特性,并提供驱动电压配置、电流能力计算、布局优化等实用方案。特别针对第三代电力电子半导体SiC MOSFET的驱动要求,分享STGAP1AS等典型驱动方案的应用技巧,助力工程师解决高频应用中的EMI和热管理挑战。

weixin_29230865的博客 367

八大排序算法的时间复杂度

排序算法的稳定性: 假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,ri=rj,且ri在rj之前,而在排序后的序列中,ri仍在rj之前,则称这种排序算法是稳定的;否则称为不稳定的。

_Findway的博客 908

LabVIEW与MySQL的连接:软件下载与安装至UDL文件创建全过程

依据个人经验编辑的十分完备的使用教程

tiaowudexiaoyu的博客 5575

按之字形顺序打印二叉树——js

按之字形顺序打印二叉树 请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。 思路 当二叉树的根结点(结点1)打印之后,它的左子结点(结点2)和右子结点(结点3)先后保存到一个容器中。值得注意的是,在打印第二层的结点时,先打印结点3,后打印结点2。由此可见结点在这个容器中是后进先出的,因此该容器可以用...

qq_40608516的博客 630

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

按之字形顺序打印二叉树 python

请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推 使用队列进行操作,在每一层用for循环处理保证读完一层。用flag纪录奇偶。 class Solution: def Print(self, pRoot): res = [] if pRoot == None: return [] st...

jianyuchen23的博客 250

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

python 按之字形顺序打印二叉树

''' 题目描述 请实现一个函数按照之字形打印二叉树, 即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。 层序遍历的变种,当当前层是奇数层的时候,将出栈结果保存 当当前层是偶数层时,将出栈结果序列逆序保存 ''' # -*- coding:utf-8 -*- class TreeNode: def __init__(self,...

WYXHAHAHA123的博客 543

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

按之字形顺序打印二叉树 java

请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。 import java.util.ArrayList; import java.util.LinkedList; import java.util.Queue; import java.util.Stack; /* public class Tre...

有梦的博客 386

二叉树之按之字形顺序打印二叉树

1.本题知识点    二叉树,栈 2. 题目描述    请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。 3. 思路    关键点: 用两个栈分别保存奇数层和偶数层的节点。    如上图,打印顺序及过程如下:    初始化,将1放入stack1.    1    奇数层 ---- stac...

守得云开见月明 424
上一篇: 对称的二叉树
下一篇: 序列化二叉树
Findway_
博客等级 码龄10年 36粉丝 117原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值