LeetCode(算法)- 426. 将二叉搜索树转化为排序的双向链表

Posted 放羊的牧码

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode(算法)- 426. 将二叉搜索树转化为排序的双向链表相关的知识,希望对你有一定的参考价值。

题目链接:点击打开链接

题目大意:

解题思路:

相关企业

  • 字节跳动
  • Facebook
  • 亚马逊(Amazon)
  • 微软(Microsoft)

AC 代码

  • Java
/*
// Definition for a Node.
class Node 
    public int val;
    public Node left;
    public Node right;

    public Node() 

    public Node(int _val) 
        val = _val;
    

    public Node(int _val,Node _left,Node _right) 
        val = _val;
        left = _left;
        right = _right;
    
;
*/

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);
    
  • C++
/*
// Definition for a Node.
class Node 
public:
    int val;
    Node* left;
    Node* right;

    Node() 

    Node(int _val) 
        val = _val;
        left = NULL;
        right = NULL;
    

    Node(int _val, Node* _left, Node* _right) 
        val = _val;
        left = _left;
        right = _right;
    
;
*/

class Solution 
public:
    Node* treeToDoublyList(Node* root) 
        if(root == nullptr) return nullptr;
        dfs(root);
        head->left = pre;
        pre->right = head;
        return head;
    
private:
    Node *pre, *head;
    void dfs(Node* cur) 
        if(cur == nullptr) return;
        dfs(cur->left);
        if(pre != nullptr) pre->right = cur;
        else head = cur;
        cur->left = pre;
        pre = cur;
        dfs(cur->right);
    
;

以上是关于LeetCode(算法)- 426. 将二叉搜索树转化为排序的双向链表的主要内容,如果未能解决你的问题,请参考以下文章

*Leetcode 426 & 剑指 Offer 36. 二叉搜索树与双向链表

*Leetcode 426 & 剑指 Offer 36. 二叉搜索树与双向链表

[leetcode]426. Convert Binary Search Tree to Sorted Doubly Linked List二叉搜索树转有序双向链表

如何将二叉树就地转换为二叉搜索树,即我们不能使用任何额外的空间

LeetCode-108.将有序数组转换为二叉搜索树

将二叉搜索树转换为双向链表