一、题目内容

image.png
image.png

二、题解

解法1:

思路

二叉搜索树的中序遍历就是从小到大,所以可以通过中序遍历解题,递归

代码

  1. class Solution {
  2. private Node pre, head;
  3. public Node treeToDoublyList(Node root) {
  4. if (root == null) {
  5. return null;
  6. }
  7. recur(root);
  8. head.left = pre;
  9. pre.right = head;
  10. return head;
  11. }
  12. private void recur(Node root) {
  13. if (root == null) {
  14. return;
  15. }
  16. recur(root.left);
  17. if (pre != null) { //非第一个节点
  18. pre.right = root;
  19. } else { //root为双向链表第一个节点
  20. head = root;
  21. }
  22. root.left = pre;
  23. pre = root;
  24. recur(root.right);
  25. }
  26. }