Leetcode刷题笔记1 二叉树part01

漫画:小白为了面试如何刷题?(呕心沥血算法指导篇) 今天是小浩算法“365刷题计划” - 刷题指导篇(小白篇)。三年高考,五年刷题。leetcode不算从其他各处收录的题目,单就自己的题库,总共有1600+,如果按照每天刷一道的话,总共... 阅读详情

二叉树的递归遍历

leetcode 144 二叉树的前序遍历

class Solution:
    def preorderTraversal(self, root: Optional[TreeNode]) -> List[int]:
        res = []
        def dfs(node):
            if node is None:
                return 
            res.append(node.val)
            dfs(node.left)
            dfs(node.right)
        dfs(root)
        return res

leetcode 94 二叉树的中序遍历

class Solution:
    def inorderTraversal(self, root: Optional[TreeNode]) -> List[int]:
        res = []
        def dfs(node):
            if node is None:
                return
            dfs(node.left)
            res.append(node.val)
            dfs(node.right)
        dfs(root)
        return res

leetcode 145 二叉树的后序遍历

class Solution:
    def postorderTraversal(self, root: Optional[TreeNode]) -> List[int]:
        res = []
        def dfs(node):
            if node is None:
                return
            dfs(node.left)
            dfs(node.right)
            res.append(node.val)
        dfs(root)
        return res

二叉树的迭代遍历

中序遍历

class Solution:
    def inorderTraversal(self, root: Optional[TreeNode]) -> List[int]:
        if not root:
            return []
        res = []
        stack = []
        cur = root
        while cur or stack:
            if cur:
                stack.append(cur)
                cur = cur.left
            else:
                cur = stack.pop()
                res.append(cur.val)
                cur = cur.right
        return res

 前序遍历

class Solution:
    def preorderTraversal(self, root: Optional[TreeNode]) -> List[int]:
        if not root:
            return []
        stack = [root]
        res = []
        while stack:
            node = stack.pop()
            res.append(node.val)
            if node.right:
                stack.append(node.right)
            if node.left:
                stack.append(node.left)
        return res

后序遍历

class Solution:
    def postorderTraversal(self, root: Optional[TreeNode]) -> List[int]:
        if not root:
            return []
        res = []
        stack = [root]
        while stack:
            node = stack.pop()
            res.append(node.val)
            if node.left:
                stack.append(node.left)
            if node.right:
                stack.append(node.right)
        return res[::-1]

leetcode 102 二叉树的层序遍历

class Solution:
    def levelOrder(self, root: Optional[TreeNode]) -> List[List[int]]:
        if not root:
            return []
        queue = collections.deque([root])
        res = []
        while queue:
            level = []
            for _ in range(len(queue)):
                cur = queue.popleft()
                level.append(cur.val)
                if cur.left:
                    queue.append(cur.left)
                if cur.right:
                    queue.append(cur.right)
            res.append(level)
        return res

递归

class Solution:
    def levelOrder(self, root: Optional[TreeNode]) -> List[List[int]]:
        if not root:
            return []
        levels = []
        def traverse(node, level):
            if not node:
                return
            if len(levels) == level:
                levels.append([])
            levels[level].append(node.val)
            traverse(node.left, level + 1)
            traverse(node.right, level + 1)
        traverse(root, 0)
        return levels

夸父追日:第六章 二叉树part01 夸父追日第13天,太硬核了,很基础很重要! 阅读详情

相关推荐

Ansys Zemax导入CAD文件避坑指南:STL/STEP/IGES格式选择与性能优化

本文深度解析了在Ansys Zemax中导入CAD文件的核心要点与性能优化策略。针对STL、STEP、IGES等主流格式,详细对比了其几何表示、精度与适用场景差异,并提供了基于模型特征的格式选择决策树。文章重点分享了体元、弦公差等高级参数的调优技巧,以及处理复杂装配体和避免精度陷阱的实战指南,旨在帮助光学工程师提升仿真效率与结果可靠性。

weixin_29202687的博客 437

Leetcode Hot 100 —— 二叉树 part01

Leetcode Hot 100 —— 二叉树 part01

qq_52421969的博客 822

博途的HMI(触摸屏)的应用

触摸屏(HMI):用于控制PLC,可认为是小型上位机(用于控制PLC的都可认为是上位机)上位机(PC Station):将触摸屏升级为电脑----工控机(工业控制的机器)用博途编写西门子的触摸屏和上位机。

王阿妹小天才的博客 2677

Python | Leetcode刷题日寄Part05

Python|Leetcode刷题日寄Part05: 💦:二叉树的中序遍历;🔥:对称二叉树;🍞:翻转二叉树;💡:验证二叉搜索树;🚀:岛屿数量;🌲:二叉树的最小深度;🎁:二叉树展开为链表;🌞:二叉树的前序遍历;🌠:相同的树;💎:路径总和

四口鲸鱼爱吃盐的博客 803

用一组可复现实验讲清 ABAP 内表 Standard / Sorted / Hashed 的性能差异

摘要(150字): SAP项目中性能问题常源于ABAP内表选型不当。标准表(STANDARD TABLE)写入快但查找慢(线性扫描),适合遍历场景;排序表(SORTED TABLE)保持有序,支持二分查找,适合范围查询;哈希表(HASHED TABLE)基于唯一键实现常数级查找,适合高频精确匹配。实验表明:标准表+BINARY SEARCH需预排序,成本可能高于直接使用排序表;哈希表在键匹配时性能最优。Gateway和RAP场景中,内表选型直接影响接口响应,建议根据读写负载(追加/遍历/精确查找)选择对应类

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 203

OpenClaw实战四|内容创作全流程AI助理:自动撰稿+智能剪辑+多平台发布,一人顶一个内容团队

AI替代的是「写稿、剪辑、发布」这种流水线工作,真正让你解放出来,去做选题、创意、人设、变现这些高价值的事。OpenClaw这套内容创作全流程AI助理,最大的价值不是「帮你发内容」,而是让一个人,拥有一个内容团队的产能。不管是个人博主、小团队,还是企业新媒体,都能用零代码的方式,快速搭建属于自己的自动化内容矩阵。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 589

二叉树 | part01

本文总结了二叉树的递归和迭代遍历方法,包括前序、中序、后序和层序遍历。递归遍历通过定义终止条件和单层递归逻辑实现,前序(中左右)、中序(左中右)、后序(左右中)遍历的区别在于处理节点的顺序不同。迭代遍历使用栈模拟递归过程,前序和后序遍历通过调整入栈顺序实现,中序遍历需要指针辅助。层序遍历采用队列实现广度优先搜索,记录每层节点数并按层处理。文章还提供了相关力扣题目的解法,如右视图、层平均值、最大/最小深度等,展示了如何基于基本遍历方法解决实际问题。

2403_88856345的博客 652

黑猫带你学eMMC协议第17篇:超详细的eMMC HS200 & HS400讲解

1 前言 1.1 声明 本文依据eMMC JEDEC5.1及个人工作经验整理而成,如有错误请留言。 本文结合eMMC JEDEC5.1协议手册查看效果更佳。 1.2 内容提要 本文大约6000字,主要内容有: 1.什么是emmc hs200/hs400? 2.什么是tuning?tuning的过程又是什么? 3.如何设置才能让emmc进入hs200 mode? 4.如何设置才能让emmc进入hs400 mode? 5.emmc关于HS200/HS400内部结构框图对比。 6.部分个人相关经验总结。

黑猫奥利奥的博客 1万+

Day13 二叉树_part01

前序遍历顺序是中左右,而栈是先进后出,又因为只有先获取根节点才能访问子树,所以应该先入栈根节点(即中间节点)并马上弹出,将根节点值存入结果数组,再处理该根节点的子树。那么再看看中序遍历,中序遍历是左中右,指针先访问的是二叉树根节点,但它不会立即处理,而是一层一层向下访问,直到到达树左面的最底部,再开始处理节点(也就是在把节点的数值放进result数组中),这就造成了。迭代法中序遍历的逻辑不同于前序,前序遍历的顺序是中左右,先访问的元素是中间节点,要处理的元素也是中间节点,所以刚刚才能写出相对简洁的代码,

2301_80243466的博客 765

cesium vue2/vue3教程目录导航

以下是本专栏目录导航,送完整项目源码(拒绝单页源码),可以直接运行,全部配置免费视频教程(B站)。

qq_29384639的博客 4318

【保姆级教程】基于UNet++&MobileNetv2的语义分割模型从训练到RK3588部署:让边缘AI落地效率提升300%

通过SMP库一键构建encoder_name="mobilenet_v2", # 选择MobileNetv2作为骨干encoder_weights="imagenet", # 加载预训练权重加速收敛in_channels=3, # 输入图像通道数(RGB)classes=29, # Cityscapes数据集类别数activation=None # 输出无激活,便于后续损失计算本教程从“模型设计-训练-转换-边缘部署”全链路拆解了。

FJN110的博客 211

Day13 | 第六章 二叉树 Part01

二叉树的基本概念、递归法/迭代法遍历模板

m0_52313564的博客 999

【x265编码器】章节1——x265的lookahead模块分析

目录一、模块功能二、lookahead模块分析1.调用流程2.代码分析Lookahead::addPicture()Lookahead::checkLookaheadQueue()Lookahead::getDecidedPicture()Lookahead::findJob()Lookahead::slicetypeDecide()PreLookaheadGroup::processTasksLookaheadTLD::lowresIntraEstimate()Lookahead::slicetypeAn

vcvdv123的博客 4万+

代码训练营DAY13 第六章 二叉树part01

理论基础二叉树种类存储方式遍历方式深度优先搜索&广度优先搜索深度:前序遍历、中序遍历、后序遍历(中间在前or中or后,左右顺序固定)广度:二叉树定义递归遍历 (必须掌握)递归分析三步法1、确定递归函数的和2、确定3、确定。

2401_89133587的博客 702

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Day13 第六章 二叉树part01

写完了递归算法, 运行的时候,经常会遇到栈溢出的错误,就是没写终止条件或者终止条件写的不对,操作系统也是用一个栈的结构来保存每一层递归的信息,如果递归没有终止,操作系统的内存栈必然就会溢出。确定哪些参数是递归的过程中需要处理的,那么就在递归函数里加上这个参数, 并且还要明确每次递归的返回值是什么进而确定递归函数的返回类型。满二叉树:如果一棵二叉树只有度为0的结点和度为2的结点,并且度为0的结点在同一层上,则这棵二叉树为满二叉树。最后一棵 不是平衡二叉树,因为它的左右两个子树的高度差的绝对值超过了1。

Takagi1_san的博客 1527

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

第六章 二叉树part01

【代码】第六章 二叉树part01。

m0_62572567的博客 424

STM32F407中文手册

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

leetcode刷题day13|二叉树Part01(递归遍历、迭代遍历、统一迭代、层序遍历)

二叉树:先序遍历、中序遍历、后序遍历以及层序遍历的递归和迭代方法。

m0_51007517的博客 1657

二叉树剪枝_万字长文!二叉树入门和刷题看这篇就够了!

来源:小浩算法作者:程序员浩哥本篇作为入门整合篇,已经砍去难度较大的知识点,所有列出的内容,均为必须掌握。因为很长,写下目录:二叉树是啥二叉树的最大深度(DFS)二叉树的层次遍历(BFS)二叉搜索树验证二叉搜索树查找二叉搜索树删除平衡二叉树完全二叉树二叉树的剪枝01PART二叉树是啥二叉树有多重要?单就面试而言,在 leetcode 中二叉树相关的题目占据了300多道,近三分之一。同时,...

weixin_39935571的博客 1059

代码随想录 day14 第六章 二叉树part01

平衡二叉搜索树:又被称为AVL(Adelson-Velsky and Landis)树,且具有以下性质:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。这是统一迭代法的写法, 如果学有余力,可以掌握一下。图片示例【来自代码随想录官网】图片示例【来自代码随想录官网】图片示例【来自代码随想录官网】图片示例【来自代码随想录官网】144.二叉树的前序遍历。145.二叉树的后序遍历。144.二叉树的前序遍历。145.二叉树的后序遍历。迭代法:【非递归遍历】

weixin_60315213的博客 1061

力扣打卡Day14 二叉树part01 递归遍历+迭代遍历+层序遍历

递归的底层逻辑是用栈来实现的。这是递归遍历的三步走:1. 确定递归函数的参数和返回值2. 确定终止条件3. 确定单层递归的逻辑前序/中序/后序其实指的是中间节点的遍历顺序。前序:中左右一是要注意返回值,二是要注意对于ans这个数组的引用传递,三是注意C++语法中对于空指针的表示(NULL或者nullptr或者!后序:左右中中序:左中右。

Lumory的博客 559

算法训练营 day19 | 回溯算法part01

总结:需要做剪枝,不然会TLE,整体和上一题的代码十分类似。只需要在加和大于目标值时直接返回就行。总结:见到回溯类的题目要先想到模版,然后先写出来基础版本之后再去考虑是否可以剪枝的问题。继续坚持刷题吧,准备刷完题去实习。有好多二叉树的题跳过了,先不刷了。可以进行剪枝,在遍历当前层的选择时可以缩小范围。

m0_68293482的博客 496

代码随想录训练营day14|LeetCode二叉树part1

代码随想录@程序员Carl快期末了,加速赶੭ ˙ᗜ˙ )੭。

xjx2022_1_12的博客 615

【leetcode】第六章 二叉树part01

【代码】【leetcode】第六章 二叉树part01。

weixin_40433003的博客 1472

【二叉树part01】| 二叉树的递归遍历、二叉树的迭代遍历、二叉树的统一迭代遍历

代码随想录算法训练营Day14

m0_61801103的博客 641

【代码随想录Day13】二叉树Part01

刚才前序遍历的入栈顺序是。,逆序输出结果,就是。

Shayne 的博客 708
上一篇: Leetcode刷题笔记1 栈与队列part02
下一篇: leetcode刷题笔记1 二叉树part02
平乐君
博客等级 码龄5年 65粉丝 52原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值