Double Circular Sorted Linked List Insert

void Insert(LinkedList * &start, int val)
{
    LinkedList * cur = start;
    if (start == NULL)
    {
        auto l = new LinkedList(val);
        l->pre = l
        l->next = l
        start = l
        return;
    }
    int cycle = 0;
    do
    {
        if (val < cur->val ||(cycle == 1 && cur == start))
        {
            auto l = new LinkedList(val);
            cur->pre->next = l;
            l->next = cur;
            l->pre = cur->pre;
            cur->pre = l;
            if (cur == start)
                start = l;
            inserted = true;
            return ;
        }
        cur = cur->next;
        if(cur == start)
        {
            ++cycle;
        }
    } while (true);
}

  

posted on 2014-11-23 15:38  fatemaster  阅读(184)  评论(0)    收藏  举报

导航