Golang | Leetcode Golang题解之第145题二叉树的后序遍历

news2024/11/24 14:05:55

题目:

题解:

func reverse(a []int) {
    for i, n := 0, len(a); i < n/2; i++ {
        a[i], a[n-1-i] = a[n-1-i], a[i]
    }
}

func postorderTraversal(root *TreeNode) (res []int) {
    addPath := func(node *TreeNode) {
        resSize := len(res)
        for ; node != nil; node = node.Right {
            res = append(res, node.Val)
        }
        reverse(res[resSize:])
    }

    p1 := root
    for p1 != nil {
        if p2 := p1.Left; p2 != nil {
            for p2.Right != nil && p2.Right != p1 {
                p2 = p2.Right
            }
            if p2.Right == nil {
                p2.Right = p1
                p1 = p1.Left
                continue
            }
            p2.Right = nil
            addPath(p1.Left)
        }
        p1 = p1.Right
    }
    addPath(root)
    return
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

STM32—U8g2图形库练习

一、新建CubeMX工程 1.照例将RCC配置为外部高速晶振&#xff08;精度更高&#xff09;——HSE&#xff1b;将SYS的Debug设置成Serial Wire&#xff08;否则可能导致芯片自锁)&#xff1b; 2.配置I2C2作为OLED的通讯方式。 3.TIM1配置&#xff1a;U8g2图形库需要us级延迟推动&…

uniapp地图选择位置

直接上代码 通过一个点击事件调用官方api即可调用 点击调用成功后显示如下 然后选择自己所需要的位置即可

Mssql数据注入

1.查询用户创建的数据表 select id,name from sysobjects where xtypeu ; 2.查询用户创建数据表的具体列名 select * from syscolumns where id 上一步获取的id值; 3.查询具体内容 select id,字段名 from 数据表名&#xff1b; 4.数据库名 db_name() 5.用户登录名 su…

使用Ollama简单部署本地Qwen2

Ollama 是一个开源的、本地运行的 AI 聊天模型&#xff0c;允许在自己的设备上运行 LLM&#xff0c;无需依赖云服务。它支持多种 LLM。目前Ollama library已经支持Qwen2&#xff0c;可以直接使用。 首先安装ollama&#xff0c; 访问官网 下载 ollama 对应版本 Download Ollama…

数字时代网络安全即服务的兴起

在日益数字化的世界里&#xff0c;威胁形势不断演变&#xff0c;网络攻击变得越来越复杂和频繁。当组织努力保护敏感数据并保持运营完整性时&#xff0c;传统的网络安全措施往往不够。 这为更具动态性和可扩展性的解决方案铺平了道路&#xff1a;网络安全即服务 (CSaaS)。网络…

Vitis HLS 学习笔记--矢量数据类型

目录 1. 简介 2. 用法详解 2.1 存储器布局 2.2 示例展示 2.3 综合报告 3. 总结 1. 简介 在 Vitis HLS 中&#xff0c;矢量数据类型是一种特殊的数据类型&#xff0c;它允许你一次处理多个数据元素&#xff0c;就像一排并排的盒子&#xff0c;每个盒子里都装着一个数据元…

大模型基础——从零实现一个Transformer(3)

大模型基础——从零实现一个Transformer(1)-CSDN博客 一、前言 之前两篇文章已经讲了Transformer的Embedding,Tokenizer,Attention,Position Encoding, 本文我们继续了解Transformer中剩下的其他组件. 二、归一化 2.1 Layer Normalization layerNorm是针对序列数据提出的一种…

基于STM32移植U8g2图形库——OLED显示(HAL库)

文章目录 一、U8g2简介1、特点2、U8g2的使用步骤 二、I2C相关介绍1、I2C的基本原理2、I2C的时序协议 三、OLED屏的工作原理四、汉字点阵显示原理五、建立STM32CubeMX工程六、U8g2移植1、U8g2源码2、移植过程 七、代码编写1、参考博主实现的U82G的demo例程&#xff08;1&#xf…

VMware Workerstation开启虚拟机后,产生乱码名称日志文件

问题情况 如下图所示&#xff0c;我的虚拟机版本是16.1.2版本&#xff0c;每次在启动虚拟机之后&#xff0c;D盘目录下都会产生一个如图下所示的乱码名称文件。同时&#xff0c;虚拟机文件目录也是杂乱不堪&#xff0c;没有按照一台虚拟机对应一个文件夹的形式存在。 问题处理…

笔记 | 软件工程06-1:软件设计-软件设计基础

1 软件设计概述 1.1 为什么要软件设计 1.2 何为软件设计 何为软件系统的解决方案&#xff1f; 软件设计关注与软件需求的实现问题软件设计是需求分析和软件实现间的桥梁 1.3 软件设计的质量要求 1.4 软件设计的过程 1.4.1 软件体系结构设计 1.4.2 用户界面设计 1.4.3 软件详细…

最短路径Dijkstra算法详解

目录 最短距离问题 最短路径问题 进阶--标尺增多 升级方法 例题应用 最短距离问题 Dijkstra算法的策略&#xff1a; 设置集合S存放已被访问的顶点&#xff0c;然后执行n次下面的两个步骤&#xff08;n为顶点个数&#xff09;&#xff1a; &#xff08;1&#xff09;每次…

go-zero整合Excelize并实现Excel导入导出

go-zero整合Excelize并实现Excel导入导出 本教程基于go-zero微服务入门教程&#xff0c;项目工程结构同上一个教程。 本教程主要实现go-zero框架整合Excelize&#xff0c;并暴露接口实现Excel模板下载、Excel导入、Excel导出。 go-zero微服务入门教程&#xff1a;https://blo…

科技云报道:“元年”之后,生成式AI将走向何方?

科技云报道原创。 近两年&#xff0c;以大模型为代表的生成式AI技术&#xff0c;成为引爆数字原生最重要的技术奇点&#xff0c;人们见证了各类文生应用的进展速度。Gartner预测&#xff0c;到2026年&#xff0c;超过80%的企业将使用生成式AI的API或模型&#xff0c;或在生产环…

分布式光纤测温DTS与红外热成像系统的主要区别是什么?

分布式光纤测温DTS和红外热成像系统在应用领域和工作原理上存在显著的区别&#xff0c;两者具有明显的差异性。红外热成像系统适用于表现扩散式发热、面式场景以及环境条件较好的情况下。它主要用于检测物体表面的温度&#xff0c;并且受到镜头遮挡或灰尘等因素的影响会导致失效…

论文中表格跨页了做续表的正确方法

在上方加表格 粘贴即可 文章来源于论文中表格跨页了做续表的正确方法&#xff01;论文人快来学习_哔哩哔哩_bilibili 小姐姐用WPS弄的&#xff0c;微软的不理想&#xff0c;我试了试&#xff0c;觉得在上面增加格子再粘贴表头&#xff0c;效果还行

Python | Leetcode Python题解之第145题二叉树的后序遍历

题目&#xff1a; 题解&#xff1a; class Solution:def postorderTraversal(self, root: TreeNode) -> List[int]:def addPath(node: TreeNode):count 0while node:count 1res.append(node.val)node node.righti, j len(res) - count, len(res) - 1while i < j:res…

使用fprintf函数实现写日志文件的功能(附源码)

输出打印日志是排查软件异常问题一个非常重要的手段,无论是业务上的异常,还是软件异常崩溃。一个成熟的软件产品,必然有一个功能完备的日志记录与打印系统。本文就来介绍一种简单易用的写日志文件的方法,给大家提供一个参考。 1、实现思路 主要使用C库中的fopen、fprintf和…

问题:设开环系统的频率特性为则其相频特性穿越-180°线时对应的频率为()。 #学习方法#微信

问题&#xff1a;设开环系统的频率特性为则其相频特性穿越-180线时对应的频率为&#xff08;&#xff09;。 ? A、10rad1s B、3rad/s C、lradIs D、√3rad/s 参考答案如图所示

AIGC简介

目录 1.概述 2.诞生背景 3.作用 4.优缺点 4.1.优点 4.2.缺点 5.应用场景 5.1.十个应用场景 5.2.社交媒体内容 6.如何使用 7.未来展望 8.总结 1.概述 AIGC 是“人工智能生成内容”&#xff08;Artificial Intelligence Generated Content&#xff09;的缩写&#x…

uniapp自定义tabbar——中间特殊按钮放大

在APP.vue里面 .uni-tabbar__item:nth-child(4) .uni-tabbar__icon {width: 50px !important;height: 50px !important;position: relative;bottom: 30rpx;}.uni-tabbar__item:nth-child(4) .uni-tabbar__label {position: relative;bottom: 25rpx;}