leedcode——二叉树的前序遍历

AHP层次分析法在项目风险评估中的实战应用(含Excel模板) 本文详细介绍了AHP层次分析法在项目风险评估中的实战应用。通过构建风险层次模型、利用判断矩阵量化主观判断,并结合Excel工具进行权重计算与一致性检验,将模糊的定性风险转化为清晰的量化排序。文章以新产品上线项目为例,提供了完整的分析流程和可操作的Excel模板,帮助项目经理高效识别并优先处理核心风险。 阅读详情

题目:Given a binary tree, return the preorder traversal of its nodes' values.

思路:

(1)递归方法:打印根节点,递归左孩子,递归右孩子

(2)非递归方法:将根节点入栈,栈不为空时,获取栈顶元素,打印栈顶元素,如果右孩子不为空,右孩子入栈,如果左孩子不为空,左孩子入栈。(原因:栈是先进后出的顺序,右孩子先入栈最后才取出打印)

递归代码:

/**
 * Definition for binary tree
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };
 */
class Solution {  
public:  
    void preOrder(TreeNode *root,vector<int>&vec){  
        if(root != NULL){  
            vec.push_back(root->val); 
            preOrder(root->left,vec);  
            preOrder(root->right,vec);   
        }  
    }  
    vector<int> preorderTraversal(TreeNode *root) {  
        vector<int>vec;  
        preOrder(root,vec);  
        return vec;        
    }  
};

非递归代码:

class Solution {
public:
    vector<int> preorderTraversal(TreeNode *root) {
        stack<TreeNode*> st;
        vector<int> vec;
        if(root == NULL) return vec;
        TreeNode *p = root;
        st.push(p);//根节点入栈
        while(!st.empty()){
            p = st.top();//取栈顶元素
            st.pop();
            vec.push_back(p->val);
            if(p->right != NULL){
                st.push(p->right);
            }
            if(p->left != NULL){
                st.push(p->left);
            }
        }
        return vec;
    }
};


13《CAN总线五种错误类型,故障判定全解析》 CAN总线规定,发送节点在发送完EOF字段后,会留出一个ACK Slot(应答槽)。这个槽里,发送节点自己会输出隐性电平(逻辑1),然后“期待”至少有一个其他节点在这个槽里把它拉成显性电平(逻辑0)。如果这个槽结束时仍然是隐性电平,发送节点就判定:刚才那帧报文,没有任何一个节点成功接收——这就是应答错误。简单说,就是“我喊了一嗓子,却没人应声”。 阅读详情

相关推荐

DM-VIO论文精读:从‘延迟边缘化’到‘位姿图BA’,手把手拆解单目VIO性能超越双目的秘密

本文深入解析DM-VIO技术如何通过延迟边缘化和位姿图BA创新,解决单目视觉惯性里程计(VIO)的尺度不可观性问题,并在精度上超越传统双目系统。文章详细介绍了延迟边缘化的双因子图结构设计、位姿图BA的多级初始化策略,以及系统级优化带来的性能提升,为VIO研究与实践提供了重要参考。

weixin_30616969的博客 427

LeetCode基础--二叉树--前序遍历

前序: 根->左->右递归实现:public class Solution { public IList<int> PreorderTraversal(TreeNode root) { List<int> result = new List<int>(); if (root != null){ result.Add(root.val);

gnimgnot 1677

python 成语接龙-连接数据库

from xpinyin import Pinyin import pymysql while 1: conn = pymysql.connect( host='localhost', #本地连接 user='root', #数据库账户名 password='password', #数据库密码 db='dic',

Hero2902的博客 598

[LeetCode] 根据前序序列和中序序列重建二叉树

LeetCode 链接: 根据前序和中序序列重建二叉树 思路: 1、根据先序向量数组的值把中序向量数组一分为二,然后递归左右部分; 2、设置全局 index 索引,作为先序遍历向量的下标,每次递归左子树之后减一。 /** * Definition for a binary tree node. * public class TreeNode { * int val

列苗 2978

实战演练:基于Veristand Custom Device的硬件在环(HIL)数据流控制模块开发

本文详细介绍了基于Veristand Custom Device的硬件在环(HIL)数据流控制模块开发实战。通过LabVIEW环境配置、动态路由逻辑构建、实时处理核心开发及性能优化等关键步骤,帮助工程师快速掌握定制化HIL测试系统的开发技巧,提升测试效率与准确性。

weixin_29206669的博客 475

PCIE配置和地址空间

来源:https://www.jianshu.com/p/574e9a2cbc4e 每个PCIe设备,有这么一段空间,Host软件可以读取它获得该设备的一些信息,也可以通过它来配置该设备,这段空间就叫做PCIe的配置空间。不同于每个设备的其它空间,PCIe设备的配置空间是协议规定好的,哪个地方放什么内容,都是有定义的。PCI或者PCI-X时代就有配置空间的概念,那时的配置空间如下: 图6.1 整个配置空间就是一系列寄存器的集合,其中Type 0是Endpoint的配置,Type 1是Brid.

qq_28643619的博客 4060

LeetCode: 前序遍历

给定一个二叉树,返回它的前序遍历。 示例: 输入: [1,null,2,3] 1 \ 2 / 3 输出: [1,2,3] 进阶:递归算法很简单,你可以通过迭代算法完成吗? /** * 递归版本 * Definition for a binary tree node. * struct TreeNode { * in...

crazyliu的博客 464

Bentley ORD(openroads designer) 二次开发(BIM)第七节 在ORD SDK中调用MicroStation SDK

从课程刚开始的时候我们就通过学习,了解了ORD的开发是基于MicroStation的,ORD SDK的接口发布的时候也对MicroStation SDK也做了一次发布。这一章将以我们对ORD SDK知识的了解为基础,使用ORD SDK的接口读取道路几何信息、计算桩号,然后再使用MicroStation SDK 读取地形数据和计算投影点的位置,并创建一组方柱形状的Soild。计算方柱底部坐标要经过两大步骤,通过路线的桩号及偏移距离去定位方柱的平面位置,通过方柱的平面位置计算数字地面模型上的投影点的坐标。

chen286990651的博客 881

leetcode-5-二叉树的前序遍历

Binary Tree Preorder Traversal Given a binary tree,return the preorder traversal of nodes‘ values。 follow up:Recursive is trivial(递归也没那么简单吧T T),could u do it iteratively? Input: [1,null,2,3] Output: ...

chadlee 380

AUTOSAR-WdgM篇

Wdg通常有两种:一种是芯片内部自带的片内看门狗,另一种是在芯片外部通过SPI这种接口连接的片外看门狗。MCAL只负责常用的有MCU内部看门狗,片内看门狗的特点是Wdg模块是直接访问相关硬件寄存器。内部看门狗依赖于系统时钟片外看门狗属于设备抽象层负责,通常需要使用MCAL提供的其他模块(比如SPI,DIO,PWM等)来访问/控制外扩看门狗芯片。这种不能直接访问硬件寄存器。Wdg Driver:有三种模式slow mode,fast mode ,off mode。

qq_329563867的博客 5830

100天精通Python(数据分析篇)——第53天:初识pandas模块_基础介绍

一、初始pandas 1. 什么是pandas? 2. 为什么要学习pandas? 3. pandas的优势 4. 下载安装pandas 二、Pandas的数据类型 1. Series 2. DataFrame

努力让自己发光,对的人才能迎着光而来 17万+

[leetcode]144. 二叉树的前序遍历

1.题目: 给定一个二叉树,返回它的 前序 遍历。 示例: 输入: [1,null,2,3] 1 \ 2 / 3 输出: [1,2,3] 2.代码: /** * Definition for a binary tree node. * struct TreeNode { * int val; * struct TreeNode...

MJ_Lee的博客 185

LeedCode 144:二叉树的前序遍历

二叉树的前序遍历 题目描述: 给你二叉树的根节点root,返回它节点值的前序遍历。 示例1: 输入:root = [1,null,2,3] 输出:[1,2,3] 示例2: 输入:root = [] 输出:[] 示例3: 输入:root = [1] 输出:[1] 示例4: 输入:root = [1,2] 输出:[1,2] 链接: 5. 最长回文子串 - 力扣(LeetCode) (leetcode-cn.com) 解题思路 ...

zxl1990_ok的博客 503

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

leedcode144. 二叉树的前序遍历

题目:给你二叉树的根节点 root ,返回它节点值的 前序 遍历。、 前序遍历:根,左节点,右节点。 方法一:递归 利用递归,将左右子树分别遍历,先左后右 代码如下: class Solution { public: void Answer(TreeNode* root, vector<int>& v) { if (root == NULL) return; v.push_bac

qq_61624088的博客 404

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

LeedCode<简单>144. 二叉树的前序遍历(Morris 遍历)

题目描述: 给你二叉树的根节点 root ,返回它节点值的前序遍历。 示例 1: 输入:root = [1,null,2,3]输出:[1,2,3] 示例 2: 输入:root = []输出:[] 示例 3: 输入:root = [1]输出:[1] 示例 4: 输入:root = [1,2]输出:[1,2] 示例 5: 输入:root = [1,null,2]输出:[1,2] 一般的前序遍历大家基本上都知道,下面这个方法还是挺有意思的 M...

拯救世界的光太郎 191

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

leedcode【144】. 二叉树的前序遍历——Java解法(递归)

给你二叉树的根节点 root ,返回它节点值的 前序 遍历。示例 1:输入:root = [1,null,2,3] 输出:[1,2,3] 示例 2:输入:root = [] 输出:[] 示例 3:输入:root = [1] 输出:[1] 示例 4:输入:root = [1,2] 输出:[1,2] 示例 5:输入:root = [1,null,2] 输出:[1,2]提示:树中节点数目在范围 [0, 100] 内 -100 <= Node.val <= 100进阶:递归算法很简单,你可以通过迭代算法完成吗?时间

qq_42631788的博客 436

LeedCode 144. 二叉树的前序遍历 C/C++《两种语言实现》加 《非递归实现》

和前面的一样,我们先看一下题目: 给定一个二叉树,返回它的 前序 遍历。 示例: 输入: [1,null,2,3] 1 \ 2 / 3 输出: [1,2,3] 首先我们先给出C语言的实现代码: /** * Definition for a binary tree node. * struct TreeNode { * int val;...

dpfxaca6的博客 416

leedcode【144】. 二叉树的前序遍历——Java解法(迭代法)

给你二叉树的根节点 root ,返回它节点值的 前序 遍历。示例 1:输入:root = [1,null,2,3] 输出:[1,2,3] 示例 2:输入:root = [] 输出:[] 示例 3:输入:root = [1] 输出:[1] 示例 4:输入:root = [1,2] 输出:[1,2] 示例 5:输入:root = [1,null,2] 输出:[1,2]提示:树中节点数目在范围 [0, 100] 内 -100 <= Node.val <= 100进阶:递归算法很简单,你可以通过迭代算法完成吗?时间

qq_42631788的博客 555

Day14:二叉树递归迭代遍历 LeedCode:144.二叉树的前序遍历 145.二叉树的后序遍历 94.二叉树的中序遍历

【代码】Day14:二叉树递归迭代遍历 LeedCode:144.二叉树的前序遍历 145.二叉树的后序遍历 94.二叉树的中序遍历。

2301_76352996的博客 382

Leetcode 二叉树的前序遍历

0 题目描述 Leetcode原题链接:二叉树的前序遍历 # Definition for a binary tree node. # class TreeNode: # def __init__(self, val=0, left=None, right=None): # self.val = val # self.left = left # self.right = right 1 递归解法 2 迭代解法(堆栈) 3 Morris 前序遍历 .

OuDiShenmiss的博客 477

LeetCode题练习与总结:二叉树的前序遍历--144

本文详细介绍了二叉树前序遍历的两种方法:递归和迭代。递归方法直观易懂,但需注意空间复杂度;迭代方法使用栈模拟递归过程,可有效控制空间复杂度。两者时间复杂度均为O(N)。希望本文对您有所帮助。

一直学习永不止步 883

leetcode专题 144. 二叉树的前序遍历(C语言)

递归,后序和中序类似,不再赘述 /** * Definition for a binary tree node. * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; */ /** * Note: The returned array ...

weixin_43306331的博客 522

链式二叉树高质量OJ—【Leedcode】

链式二叉树【Leetcode】做题分享

分享学习知识地方 1847

leedcode 二叉树的层次遍历

利用队列保存每层的节点,利用一个辅助列表来保存当前层的所有孩子节点。当当前层遍历结束之后,该层的所有孩子节点也会被全部保存再辅助列表中,然后将这个辅助列表赋值给队列。依次循环直到遍历完整棵树。 # Definition for a binary tree node. # class TreeNode(object): # def __init__(self, x): # ...

futurewq的博客 163

[LeedCode]从前序与中序遍历序列构造二叉树

105. 从前序与中序遍历序列构造二叉树 根据一棵树的前序遍历与中序遍历构造二叉树。 注意: 你可以假设树中没有重复的元素。 例如,给出 前序遍历 preorder = [3,9,20,15,7] 中序遍历 inorder = [9,3,15,20,7] 返回如下的二叉树: 3 / \ 9 20 / \ 15 7 分析:由于前序遍历是根左右的遍...

一杯糖不加咖啡 184
上一篇: leedcode——二叉树的后序遍历
下一篇: leedcode——reorder list
ZH_learningblog
博客等级 码龄10年 22粉丝 40原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值