Chinaunix首页 | 论坛 | 博客
  • 博客访问: 346192
  • 博文数量: 135
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1106
  • 用 户 组: 普通用户
  • 注册时间: 2013-03-20 09:56
文章分类

全部博文(135)

文章存档

2017年(3)

2016年(18)

2015年(69)

2014年(39)

2013年(6)

我的朋友

分类: C/C++

2015-11-06 10:44:33

//有序单链表合并
Node *MergeList(Node *head1, Node *head2)
{
    Node *p1 = NULL;
    Node *p2 = NULL;
    Node *head = NULL;

    if (head1->data < head2->data)
    {
        head = head1;
        p1 = head1->next;
        p2 = head2->next;
    }
    else
    {
        head = head2;
        p2 = head2->next;
        p1 = head1->next;
    }

    Node *pre = head;

    while (p1 != NULL && p2 != NULL)
    {
        if (p1->data < p2->data)
        {
            pre->next = p1;
            pre = p1;
            p1 = p1->next;
        }
        else
        {
            pre->next = p2;
            pre = p2;
            p2 = p2->next;
        }
    }

    if (p1 != NULL)
    {
        pre->next = p1;
    }

    if (p2 != NULL)
    {
        pre->next = p2;
    }

    return head;
}

阅读(359) | 评论(0) | 转发(0) |
0

上一篇:遍历二叉树

下一篇:快速排序

给主人留下些什么吧!~~