输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的循环双向链表。要求不能创建任何新的节点,只能调整树中节点指针的指向。
class Solution {
Node pre,head;
public Node treeToDoublyList(Node root) {
if(root==null) return null;
dfs(root);
pre.right=head;
head.left=pre;
return head;
}
void dfs(Node root){
if(root==null) return;
dfs(root.left);
if(pre==null) head=root;
else pre.right=root;
root.left=pre;
pre=root;
dfs(root.right);
}
}