解题思路:
中序遍历法(二叉搜索树在中序遍历时是从小到大排列的)。
// 打印中序遍历
void dfs(Node root) {if(root == null) return;dfs(root.left); // 左System.out.println(root.val); // 根dfs(root.right); // 右
}
采用head作为返回,使用pre和cur两个指针。
class Solution {Node pre, head;public Node treeToDoublyList(Node root) {if(root == null) return null;dfs(root);head.left = pre;pre.right = head;return head;}void dfs(Node cur) {if(cur == null) return;dfs(cur.left);if(pre != null) pre.right = cur;else head = cur;cur.left = pre;pre = cur;dfs(cur.right);}
}