二叉树的后序遍历

1.题目

这道题是2024-2-12的签到题,题目难度为简单。

考察的知识点为DFS(后序遍历)。

题目链接:二叉树的后序遍历

给你一棵二叉树的根节点 root ,返回其节点值的 后序遍历 

2.思路

和前两天的前序遍历、中序遍历一样,这里我们只需要更改结点处理逻辑和递归顺序就行了,同时我也进行了一定的优化:剪枝操作。之前的博客代码中只是对当前结点进行判断,没有对当前结点的左右子结点判断(虽然递归后还是判断了);但如果进行剪枝操作后,就省去了递归遍历这个操作从而变相的减少了时间复杂度(虽然量级还是那么多,但至少时间少了一内内)。

对于树的后序遍历,它的遍历顺序是:树的左子结点、树的右子结点,最后才是树的根节点。

3.代码

# 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
class Solution:def postorderTraversal(self, root: Optional[TreeNode]) -> List[int]:# 结果列表rst = []# 后续遍历函数def dfs(node):# 如果当前结点存在if node:# 如果当前结点存在左子结点if node.left:# 递归遍历dfs(node.left)# 如果当前结点存在右子结点if node.right:# 递归遍历dfs(node.right)# 添加当前结点的值到结果列表rst.append(node.val)# 遍历root结点dfs(root)return rst

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/465867.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

分享76个文字特效,总有一款适合您

分享76个文字特效,总有一款适合您 76个文字特效下载链接:https://pan.baidu.com/s/1rIiUdCMQScoRVKhFhXQYpw?pwd8888 提取码:8888 Python采集代码下载链接:采集代码.zip - 蓝奏云 学习知识费力气,收集整理更不…

手把手教你开发Python桌面应用-PyQt6图书管理系统-图书信息修改实现

锋哥原创的PyQt6图书管理系统视频教程: PyQt6图书管理系统视频教程 Python桌面开发 Python入门级项目实战 (无废话版) 火爆连载更新中~_哔哩哔哩_bilibiliPyQt6图书管理系统视频教程 Python桌面开发 Python入门级项目实战 (无废话版) 火爆连载更新中~共计24条视频&…

每日五道java面试题之java基础篇(五)

第一题. final、finally、finalize 的区别? final ⽤于修饰变量、⽅法和类:final 修饰的类不可被继承;修饰的⽅法不可被重写;修饰的变量不可变。finally 作为异常处理的⼀部分,它只能在 try/catch 语句中,…

Linux ipvlan详解(l2、l3、l3s和bridge、private和vepa模式)

Linux ipvlan详解,测试l2、l3、l3s和bridge、private和vepa模式。 最近在看Docker的网络,看到关于ipvlan网络的介绍。查阅了相关资料,记录如下。 参考 1.图解几个与Linux网络虚拟化相关的虚拟网卡-VETH/MACVLAN/MACVTAP/IPVLAN 2.IPVlan 详…

关于物理机ping不通虚拟机问题

方法一 设置虚拟机处于桥接状态即可:(虚拟机->设置->网络适配器),选择完确定,重启虚拟机即可。 方法二 如果以上配置还是无法ping通:(编辑->虚拟网络编辑器) 首先查看主机网…

【MySQL进阶之路】生产案例:大量数据刷盘导致的数据库性能抖动问题优化

欢迎关注公众号(通过文章导读关注:【11来了】),及时收到 AI 前沿项目工具及新技术的推送! 在我后台回复 「资料」 可领取编程高频电子书! 在我后台回复「面试」可领取硬核面试笔记! 文章导读地址…

VUE前端实现token的无感刷新

前言 说实话,这个其实没啥好讲的,要说有复杂度的话,也主要是在后端。 实现token无感刷新对于前端来说是一项十分常用的技术,其本质都是为了优化用户体验,当token过期时不需要用户调回登录页重新登录,而是…

【EAI 016】VIMA: General Robot Manipulation with Multimodal Prompts

论文标题:VIMA: General Robot Manipulation with Multimodal Prompts 论文作者:Yunfan Jiang, Agrim Gupta, Zichen Zhang, Guanzhi Wang, Yongqiang Dou, Yanjun Chen, Li Fei-Fei, Anima Anandkumar, Yuke Zhu, Linxi Fan 作者单位:Stanfo…

springboot179基于javaweb的流浪宠物管理系统的设计与实现

简介 【毕设源码推荐 javaweb 项目】基于springbootvue 的 适用于计算机类毕业设计,课程设计参考与学习用途。仅供学习参考, 不得用于商业或者非法用途,否则,一切后果请用户自负。 看运行截图看 第五章 第四章 获取资料方式 **项…

nba2k24 韩旭面补

nba2k23-24 韩旭面补 nba2k23-nba2k24通用 韩旭面补 下载地址: https://www.changyouzuhao.cn/9605.html

【开源】JAVA+Vue.js实现森林火灾预警系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 系统基础模块2.3 烟雾传感器模块2.4 温度传感器模块2.5 历史记录模块2.6 园区数据模块 三、系统设计3.1 用例设计3.1.1 森林园区基础系统用例设计3.1.2 森林预警数据用例设计 3.2 数据库设计3.2.1 烟雾…

车载电子电器架构 —— 网络拓扑开发概述

车载电子电器架构 —— 网络拓扑开发概述 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明…