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

devtools/2024/10/18 9:55:52/

题目:

题解

class Solution {public List<Integer> postorderTraversal(TreeNode root) {List<Integer> res = new ArrayList<Integer>();if (root == null) {return res;}TreeNode p1 = root, p2 = null;while (p1 != null) {p2 = p1.left;if (p2 != null) {while (p2.right != null && p2.right != p1) {p2 = p2.right;}if (p2.right == null) {p2.right = p1;p1 = p1.left;continue;} else {p2.right = null;addPath(res, p1.left);}}p1 = p1.right;}addPath(res, root);return res;}public void addPath(List<Integer> res, TreeNode node) {int count = 0;while (node != null) {++count;res.add(node.val);node = node.right;}int left = res.size() - count, right = res.size() - 1;while (left < right) {int temp = res.get(left);res.set(left, res.get(right));res.set(right, temp);left++;right--;}}
}

http://www.ppmy.cn/devtools/53485.html

相关文章

【Git】撤销远程仓库的提交(push)

参考&#xff1a;Git 撤销远程仓库的提交&#xff08;push&#xff09;和本地仓库的提交&#xff08;commit&#xff09;_git 撤销远程提交-CSDN博客 git reset --soft 想要撤销后的版本号 git push origin master -f soft 要撤销的本地代码不会变化&#xff0c;只是git仓库指…

如何在Python中使用Pip换源

在Python开发中&#xff0c;我们经常需要使用pip来安装各种第三方库。然而&#xff0c;默认的pip源&#xff08;Python Package Index&#xff0c;简称PyPI&#xff09;位于国外&#xff0c;有时会遇到网络不稳定或速度较慢的问题。为了解决这些问题&#xff0c;我们可以使用国…

ROS机器人虚拟仿真挑战赛持续学习笔记-20240619

cartographer 需要全手工编译……比较麻烦。 如果使用新版ceres-solver&#xff0c;版本2.x&#xff0c;需要修改源码&#xff0c;部分“接口代码”有改动。 稳妥使用ceres-solver-1.13.0&#xff0c;且需要安装abseil-cpp。 验证是否成功&#xff0c;使用roscd或roslaunch…

Linux系统:线程互斥

Linux系统&#xff1a;线程互斥 线程互斥互斥锁 mutex互斥锁原理 常见的锁死锁自旋锁 spinlock其它锁 线程互斥 讲解线程互斥前&#xff0c;先看到一个抢票案例&#xff1a; class customer { public:int _ticket_num 0;pthread_t _tid;string _name; };int g_ticket 10000…

动手学深度学习(Pytorch版)代码实践 -深度学习基础-06Softmax回归简洁版

06Softmax回归简洁版 import torch from torch import nn from d2l import torch as d2l import liliPytorch as lpbatch_size 256 train_iter, test_iter d2l.load_data_fashion_mnist(batch_size)#初始化 #Pytorch 不会隐式地调整输入的形状 net nn.Sequential(nn.Flatte…

基于WPF技术的换热站智能监控系统08--实现右上模式控制

1、区域划分 2、UI设计 3、样式及触发器 4、运行效果 走过路过不要错过&#xff0c;点赞关注收藏又圈粉&#xff0c;共同致富&#xff0c;为财务自由作出贡献

Lua优化技巧

常见的Lua优化小技巧 Lua常见优化点&#xff1a;1. 尽量使用局部变量2. table的相关减少对表的访问for循环预分配表空间元表 3. string的相关4. 避免运行时加载编译5. 尽量避免频繁创建临时对象闭包表 Lua常见优化点&#xff1a; 1. 尽量使用局部变量 尽量将变量局部化&#x…

【面试实战】# 并发编程

1.线程状态 请解释 Java 中线程的几种状态&#xff0c;并描述每种状态的特点和转换条件。 NEW&#xff08;新建&#xff09;&#xff1a;线程被创建&#xff0c;但尚未启动。RUNNABLE&#xff08;可运行&#xff09;&#xff1a;线程正在运行&#xff0c;可能在执行代码&#x…