1744. 递增顺序查找树
描述
给定一个二叉排序树,按中序遍历重新排列树,使树中最左边的结点现在是树的根,并且每个结点没有左子结点,只有一个右子结点。
给定树中的结点数介于 1 和 100 之间。每个结点都有一个从 0 到 1000 范围内的唯一整数值。
样例 1:
输入:
root = {5,3,6,2,4,#,8,1,#,#,#,7,9}
5
/ \
3 6
/ \ \
2 4 8
/ / \
1 7 9
输出:
{1,#,2,#,3,#,4,#,5,#,6,#,7,#,8,#,9}
解释:
1
\
2
\
3
\
4
\
5
\
6
\
7
\
8
\
9
样例 2:
输入:
root = {8,3,10,1,6,#,14,#,#,4,7,13,#}
8
/ \
3 10
/ \ \
1 6 14
/ \ /
4 7 13
输出:
{1,#,3,#,4,#,6,#,7,#,8,#,10,#,13,#,14}
解释:
1
\
3
\
4
\
6
\
7
\
8
\
10
\
13
\
14
原题传送门
文章目录
1744. 递增顺序查找树描述样例 1:样例 2:
题解最后说两句声明
题解
public class Solution {
public TreeNode
increasingBST(TreeNode root
) {
TreeNode nRoot
= new TreeNode(0);
TreeNode nNode
= nRoot
;
Stack
<TreeNode> s
= new Stack<>();
TreeNode n
= root
;
while (n
!= null
|| !s
.empty()) {
while (n
!= null
) {
s
.push(n
);
n
= n
.left
;
}
if (!s
.empty()) {
n
= s
.pop();
nNode
.right
= new TreeNode(n
.val
);
nNode
= nNode
.right
;
n
= n
.right
;
}
}
return nRoot
.right
;
}
}
最后说两句
非常感谢你阅读本文章,如果你觉得本文对你有所帮助,请留下你的足迹,点个赞,留个言,多谢~
作者水平有限,如果文章内容有不准确的地方,请指正。
希望小伙伴们都能每天进步一点点。
声明
本文由二当家的白帽子博客原创,转载请注明来源,谢谢~