码迷,mamicode.com
首页 > 其他好文 > 详细

Convert Binary Search Tree (BST) to Sorted Doubly-Linked List

时间:2015-01-16 08:42:31      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:

(http://leetcode.com/2010/11/convert-binary-search-tree-bst-to.html)

Convert a BST to a sorted circular doubly-linked list in-place. Think of the left and right pointers as synonymous to the previous and next pointers in a doubly-linked list.

Code:

void treeToDoublyList(Node *p, Node *& prev, Node *& head)
{
    if (!p)
        return;
    treeToDoublyList(p->left, prev, head);

    p->left = prev;
    if (prev)
        prev->right = p;
    else
        head = p;
    prev = p;

    treeToDoublyList(p->right, prev, head);
}

Node* treeToDoublyList(Node* root)
{
    Node* prev = NULL;
    Node* head = NULL;
    treeToDoublyList(root, prev, head);
    head->left = prev;
    prev->right= head;

    return head;
}

 

Convert Binary Search Tree (BST) to Sorted Doubly-Linked List

标签:

原文地址:http://www.cnblogs.com/litao-tech/p/4227625.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!