题目内容:
解题思路:
- 保存中序遍历的结果
- 创建一个结点,利用循环将每个中序遍历中的结果赋给新的结点,并且只用赋给右子树就可以
- 返回创建结点的右子树
解题代码:
class Solution {
List<Integer> list = new ArrayList<>();
public List<Integer> vin(TreeNode root){
if(root != null){
vin(root.left);
list.add(root.val);
vin(root.right);
}
return list;
}
public TreeNode increasingBST(TreeNode root) {
List<Integer> list1 = new ArrayList<>();
list1 = vin(root);
TreeNode node = new TreeNode(0);
TreeNode cur = node;
for(int i = 0;i < list1.size();i++){
cur.right = new TreeNode(list1.get(i));
cur = cur.right;
}
return node.right;
}
}