给你一棵二叉搜索树,请你 按中序遍历 将其重新排列为一棵递增顺序搜索树,使树中最左边的节点成为树的根节点, 并且每个节点没有左子节点,只有一个右子节点。
链接:https://leetcode-cn.com/problems/increasing-order-search-tree/
思路:新建一个树,按中序遍历的顺序依次把二叉搜索树的节点加到新树上。
public TreeNode increasingBST(TreeNode root) {
dfs(root);
return ans.right;
}
TreeNode ans = new TreeNode();
TreeNode temp = ans;
public void dfs(TreeNode node){
if (node == null){
return;
}
dfs(node.left);
temp.right = node;
temp = temp.right;
temp.left = null;
dfs(node.right);
}