中序遍历,前驱指针
class Solution {
Node pre = null, head = null;
public Node treeToDoublyList(Node root) {
if(root == null) return null;
dfs(root);
head.left = pre;
pre.right = head;
return head;
}
void dfs(Node root){
if(root == null) return;
dfs(root.left);
if(pre == null) head = root;
else{
root.left = pre;
pre.right = root;
}
pre = root;
dfs(root.right);
}
}