426 Convert Binary Search Tree to Sorted Doubly Linked List
1. Question
2. Implementation
/*
// Definition for a Node.
class Node {
public int val;
public Node left;
public Node right;
public Node() {}
public Node(int _val,Node _left,Node _right) {
val = _val;
left = _left;
right = _right;
}
};
*/
class Solution {
public Node treeToDoublyList(Node root) {
if (root == null) {
return root;
}
Node[] preNode = new Node[1];
Node dummy = new Node(0, null, null);
preNode[0] = dummy;
inorderTraverse(root, preNode);
preNode[0].right = dummy.right;
dummy.right.left = preNode[0];
return dummy.right;
}
public void inorderTraverse(Node node, Node[] preNode) {
if (node == null) {
return;
}
inorderTraverse(node.left, preNode);
preNode[0].right = node;
node.left = preNode[0];
preNode[0] = node;
inorderTraverse(node.right, preNode);
}
}3. Time & Space Complexity
Last updated