首页 > 其他 > 详细

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

时间:2015-01-16 08:40:38      阅读:351      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!