前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >两个排序链表合并

两个排序链表合并

作者头像
小飞侠xp
发布2018-08-29 14:41:20
1.3K0
发布2018-08-29 14:41:20
举报

LeetCode 21. Merge Two Sorted Lists 已知两个已排序链表头节点指针L1,L2,将这两个链表合并,合并后仍为有序的,返回合并后的头节点。

数据结构

struct ListNode{
    int val;
    ListNode * next;
    ListNode(int x): val(x),next(NULL){}
};
class Solution{
public:
    ListNode* mergeTwoLists(ListNode *L1,ListNode *L2){}
}
算法设计

比较l1和l2指向的节点,将较小的节点插入到pre指针后,并向前移动较小节 点对应的指针与pre指针,直到l1与l2指针有一个为空指针。最后再连接不为空的那段链表(l1或l2)。

class Solution{
public:
    ListNode * mergeTwoLists(ListNode *L1,ListNode *L2){
    ListNode temp_head(0);//设置临时头节点temp_head
    ListNode *pre = &temp_head;
while(L1 && L2){
    if(L1->val < L2->val){
        pre->next = L1;
        L1 = L1->next;
    else{
        pre->next = L2;
        L2 = L2->next;    
    }
    pre = pre->next
           
}
if(L1){//如果L1有剩余
pre->next =L1;
}
if(L2){
pre->next = L2;
}
return temp_head.next  
}

}
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018.03.06 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 算法设计
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档