直接递归中序遍历,把遍历的代码替换成修改节点的操作。
小 tip ,增加了一个虚拟的根节点,这样根节点可以当作孩子节点来处理。
代码如下:
public class lc897 {
TreeNode root = new TreeNode(0);
TreeNode temp = root;
public TreeNode increasingBST(TreeNode root) {
if (root == null) return null;
inOrder(root);
return this.root.right;
}
public void inOrder(TreeNode node) {
if (node == null) return;
inOrder(node.left);
temp.right = new TreeNode(node.val);
temp = temp.right;
inOrder(node.right);
}
}