Skip to content

Commit e9f848c

Browse files
authored
Update Increasing Order Search Tree.java
1 parent cf74591 commit e9f848c

File tree

1 file changed

+19
-15
lines changed

1 file changed

+19
-15
lines changed

Easy/Increasing Order Search Tree.java

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -14,22 +14,26 @@
1414
* }
1515
*/
1616
class Solution {
17-
TreeNode curr;
1817
public TreeNode increasingBST(TreeNode root) {
19-
TreeNode ans = new TreeNode(-1);
20-
curr = ans;
21-
inorder(root);
22-
return ans.right;
23-
}
24-
25-
private void inorder(TreeNode node) {
26-
if (node == null) {
27-
return;
18+
Stack<TreeNode> stack = new Stack<>();
19+
while (root != null) {
20+
stack.push(root);
21+
root = root.left;
22+
}
23+
TreeNode newHead = null;
24+
while (!stack.isEmpty()) {
25+
TreeNode removed = stack.pop();
26+
if (newHead == null) {
27+
newHead = removed;
28+
}
29+
TreeNode rightNode = removed.right;
30+
while (rightNode != null) {
31+
stack.push(rightNode);
32+
rightNode = rightNode.left;
33+
}
34+
removed.right = stack.isEmpty() ? null : stack.peek();
35+
removed.left = null;
2836
}
29-
inorder(node.left);
30-
node.left = null;
31-
curr.right = node;
32-
curr = node;
33-
inorder(node.right);
37+
return newHead;
3438
}
3539
}

0 commit comments

Comments
 (0)