搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
寸_铁
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
数组删除方法
2
Unix/Linux编程:接口层---以太网_etherheader
3
自定义View_view自定义
4
spring框架_spring是一个轻量级的javaee
5
大数据基础知识_1995年千户第二次信息化浪潮的标志是什么
6
基于SSM+Jsp的咖啡馆管理系统
7
Websocket实时音视频传输应用实战_websocket传输视频
8
docker设置mac地址、ip地址、主机名_docker固定容器mac地址
9
Spring事务与数据库事务之间的关系_spring事务和数据库事务的关系
10
第一章信息化知识(选择题8-10分)_什么要考产业信息化跟国民
当前位置:
article
> 正文
[Java]将二叉树的左右子树交换 非递归实现
作者:寸_铁 | 2024-06-19 21:00:44
赞
踩
[Java]将二叉树的左右子树交换 非递归实现
[java]
view plain
copy
package
dataStruct;
import
java.util.Stack;
/**
* 将二叉树的左右子树交换 非递归实现
* @author YangYi
*/
public
class
SwapTree {
private
static
Stack<Node> stack =
new
Stack<Node>();
public
static
void
main(String args[]) {
Node root = buildTree();
inOrderVisit(root);
swapTree(root);
System.out.println();
inOrderVisit(root);
}
public
static
void
inOrderVisit(Node root) {
if
(root ==
null
)
return
;
inOrderVisit(root.left);
System.out.print(root.data);
inOrderVisit(root.right);
}
public
static
void
swapTree(Node root) {
if
(root ==
null
)
return
;
Node temp =
null
;
stack.push(root);
while
(!stack.isEmpty()) {
Node node = stack.peek();
if
(node.left ==
null
&& node.right ==
null
) {
node.visited =
true
;
stack.pop();
continue
;
}
if
(node.left !=
null
) {
if
(!node.left.visited) {
stack.push(node.left);
}
}
if
((node.left ==
null
|| node.left.visited) && node.right !=
null
) {
if
(!node.right.visited) {
stack.push(node.right);
}
}
if
((node.left ==
null
|| node.left.visited)
&& (node.right ==
null
|| node.right.visited)) {
temp = node.left;
node.left = node.right;
node.right = temp;
node.visited =
true
;
stack.pop();
}
}
}
public
static
Node buildTree() {
Node root =
new
Node();
root.data =
1
;
Node temp =
new
Node();
temp.data =
2
;
root.left = temp;
temp =
new
Node();
temp.data =
3
;
root.right = temp;
temp =
new
Node();
temp.data =
4
;
root.right.right = temp;
temp =
new
Node();
temp.data =
5
;
root.left.right = temp;
temp =
new
Node();
temp.data =
6
;
root.left.right.right = temp;
return
root;
}
}
class
Node {
boolean
visited =
false
;
int
data =
0
;
Node left =
null
;
Node right =
null
;
}
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/寸_铁/article/detail/737658
推荐阅读
article
LeetCode
312
. 戳
气球
(
Java
)...
有 n 个
气球
,编号为0 到 n - 1,每个
气球
上都标有一个数字,这些数字存在数组 nums 中。现在要求你戳破所有的...
赞
踩
article
【数据
结构
】
树
-
二叉
树
的
存储
结构
(大篇幅图解、
c++
、
java
)_
二叉
树
的
顺序
存储
结构
图怎么画...
URLeisure的
二叉
树
的
存储
结构
“完美”复习资料。_
二叉
树
的
顺序
存储
结构
图怎么画
二叉
树
的
顺序
存储
结构
图怎么画 ...
赞
踩
article
基于
java
web+
mysql
的
springboot
地方废物回收机构
管理系统
(
java
+spring...
项目运行: 1. 使用Navicat或者其它工具,在
mysql
中创建对应sql文件名称的数据库,并导入项目的sql文件;...
赞
踩
article
hive
初始化报错_
hive
初始化报错
underlying
cause
:
java
.
sql
.
sql
e...
HIVE-ERROR 1045 (28000): Access denied for user 'root'@'%' (...
赞
踩
article
Java项目:地方废物回收机构
管理系统
(
java
+
SpringBoot
+Vue+
ElementUI
+...
项目介绍基于
SpringBoot
Vue的地方废物回收机构
管理系统
角色:管理员、员工管理员:管理员登录系统后,可以对首页...
赞
踩
article
Java——简单
图书
管理系统
...
数据类型变量iffor数组方法类和对象封装继承多态抽象类和接口今天就是把上述知识点全部都用起来
图书
管理系统
图书
管理系统
...
赞
踩
article
java
.
io
.FileNotFoundExcept
io
n异常的完美解决
方法
,亲测有效,嘿嘿嘿_ja...
本文详细分析了Java程序中遇到FileNotFoundExcept
io
n的常见原因,包括文件路径错误、文件不存在、权限...
赞
踩
article
文心
智能
体
平台:快来创建你的
Java
学习
小助理,全方位辅助
学习
_
文心
大
模型
java
...
强大的大
模型
能力: 依托
文心
一言大
模型
,在内容创作、数理逻辑推算、中文理解、多模态生成等多方面均有良好表现;多样化的方式...
赞
踩
article
Java
【
二叉树
】详细图解 + 掌握重点
基本
操作
_
二叉树
基本
算法
java
版...
关于
二叉树
的相关知识和相关操作代码整理分享~_
二叉树
基本
算法
java
版
二叉树
基本
算法
java
版 ...
赞
踩
article
LeetCode
:419.
甲板
上
的
战舰
(
遍历
Java
)...
只统计船
的
左上点位。因为船形状是固定
的
只能一条线。如果不是那么也很简单,就是图论,dfs或dfs标记一下以及
遍历
过
的
点即...
赞
踩
article
蓝桥
杯
AcWing
学习笔记 4-2
模拟
的
学习(附相关
蓝桥
真题:错误票据、移动距离、
日期
问题、
航班
时间
...
模拟
按照题目给
的
操作,用代码依次描述出来即可。
模拟
一般都是一些很基础
的
题目,但不要小看
模拟
,看似简单
的
操作,可能会有你想...
赞
踩
article
华为
OD机试
C
卷
--
字符串
拼接
(
Java
& JS &
Python
&
C
)...
给定 M(0 < M ≤ 30)个字符(a-z),从中取出任意字符(每个字符只能用一次)
拼接
成长度为 N(0 < N ≤...
赞
踩
article
算法
题解:
单词
接龙
(
JAVA
+BFS
算法
)_
java
算法
字符串
接龙
...
单词
接龙
(
JAVA
+BFS
算法
)原题链接:127.Word Ladderhttps://leetcode.com/pro...
赞
踩
article
【
BFS
】【迭代】【
Java
】
Leetcode
单词
接龙
_
单词
接龙
最长 算法
java
...
给定两个
单词
(beginWord 和 endWord)和一个字典,找到从 beginWord 到 endWord 的最短...
赞
踩
article
报错解决:
java
.
lang
.
Number
For
matException
:
For
input
st...
报错解决:控制台报错
java
.
lang
.
Number
For
matException
:
For
input
string
:
...
赞
踩
article
Java
的
基础
BFS
,利用
BFS
实现
单词
接龙_
单词
接龙
bfs
java
...
什么是
BFS
?
BFS
是比较常用
的
搜索算法,全名为Breadth First Search(广度优先算法),相当于在考虑问...
赞
踩
article
企业
支付宝
账号
开发
接口
教程
--
JAVA
-UTF-8...
企业
支付宝
账号
开发
教程
--
JAVA
-UTF-8
账号
注册就自己去注册吧。API,
开发
。网站建设。电子账单。
支付宝
付款。S...
赞
踩
article
企业
支付宝
账号开发接口教程
--
JAVA
-
UTF
-8(
实际操作
--
--
--
SpringMVC
+JSP)...
为什么80%的码农都做不了架构师?>>> ..._
支付宝
企业码开发例子有哪些
支付宝
企业码开发...
赞
踩
article
企业
支付宝
账号
开发
接口
教程
--
JAVA
-UTF-8(
实际操作
完善中...
SpringMVC
+JSP)...
关于即时到账的开发。审核通过。简单测试如下。希望看的可以收藏或者赞一下哦。1.拥有自己的
支付宝
企业
账号
。去产品商店选择适...
赞
踩
article
java
支付
宝
第三方即时到账
支付
接口
...
alipay 的几个内核功能文件:===========================================...
赞
踩
相关标签
leetcode
java
动态规划
数据结构
c++
二叉树
树结构
mysql
大数据
vue.js
spring boot
elementui
开发语言
django
python
maven
动画
贪心算法
学习
人工智能
文心智能体
百度云