题目
给你一棵二叉搜索树的 root ,请你 按中序遍历 将其重新排列为一棵递增顺序搜索树,使树中最左边的节点成为树的根节点,并且每个节点没有左子节点,只有一个右子节点。
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/increasing-order-search-tree
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
中序遍历模拟
class Solution {
public TreeNode increasingBST(TreeNode root) {
List<Integer> list=new ArrayList<>();
fun(root,list);
TreeNode head=new TreeNode();
TreeNode end=head;
for(int i=0;i<list.size();++i){
head.val=list.get(i);
if(i!=list.size()-1){
head.right=new TreeNode();
head=head.right;
}
}
return end;
}
public static void fun(TreeNode root,List<Integer> list){
if(root!=null){
if(root.left!=null)
fun(root.left,list);
list.add(root.val);
if(root.right!=null)
fun(root.right,list);
}
}
}