题目
输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的循环双向链表。要求不能创建任何新的节点,只能调整树中节点指针的指向。
思路
先中序遍历再左右连接
代码
var treeToDoublyList = function(root) {
if (!root) return root;
let pre = null;
let head = null;
const bst = (node) => {
if (!node) return ;
bst(node.left);
if (!head) head = node;
if (pre) {
pre.right = node;
node.left = pre;
}
pre = node;
bst(node.right);
}
bst(root);
pre.right = head;
head.left = pre;
return head;
};