合并两个链表.leetcode21 《数据结构入门到精通N7》

简介: 合并两个链表.leetcode21 《数据结构入门到精通N7》

image.png




https://leetcode-cn.com/problems/merge-two-sorted-lists/


思路(如下图):谁小放谁前面,但是记得用next保存下一个位置。


image.png


struct ListNode* mergeTwoLists(struct ListNode* list1, struct ListNode* list2){
    if(list1==NULL)
    return list2;
    if(list2==NULL)
    return list1;
    struct ListNode* cur1=list1;
    struct ListNode* next1=list1;
    struct ListNode* cur2=list2;
    struct ListNode* next2=list2;
    struct ListNode* newhead=NULL;
    struct ListNode* newcur=NULL;
    while(cur1!=NULL && cur2!=NULL)
    {
        if(cur1->val<cur2->val)
        {
            if(newhead==NULL)
            {
                next1=cur1->next;
                newhead=cur1;
                newcur=cur1;
                cur1=next1;
            }
            else
            {
                next1=cur1->next;
                newcur->next=cur1;
                newcur=cur1;
                cur1=next1;
            }
        }
        else
        {
            if(newhead==NULL)
            {
                next2=cur2->next;
                newhead=cur2;
                newcur=cur2;
                cur2=next2;
            }
            else
            {
                next2=cur2->next;
                newcur->next=cur2;
                newcur=cur2;
                cur2=next2;
            }
        }
    }
    //谁不为空就是没插完
    if(cur1!=NULL)
    {
        newcur->next=cur1;
    }
    else
    {
        newcur->next=cur2;
    }
    return newhead;
}


相关文章
|
3天前
|
存储 SQL 算法
LeetCode力扣第114题:多种算法实现 将二叉树展开为链表
LeetCode力扣第114题:多种算法实现 将二叉树展开为链表
|
7天前
|
存储 缓存 算法
数据结构和算法学习记录——总结顺序表和链表(双向带头循环链表)的优缺点、CPU高速缓存命中率
数据结构和算法学习记录——总结顺序表和链表(双向带头循环链表)的优缺点、CPU高速缓存命中率
11 0
|
2天前
|
存储
初阶数据结构 带头双链表
初阶数据结构 带头双链表
5 0
|
2天前
数据结构初阶 链表的补充
数据结构初阶 链表的补充
3 0
|
2天前
|
存储
数据结构初阶 链表详解
数据结构初阶 链表详解
5 0
|
2天前
|
机器学习/深度学习 算法
数据结构入门 时间 空间复杂度解析
数据结构入门 时间 空间复杂度解析
4 0
|
3天前
|
存储 算法 大数据
深入解析力扣170题:两数之和 III - 数据结构设计(哈希表与双指针法详解及模拟面试问答)
深入解析力扣170题:两数之和 III - 数据结构设计(哈希表与双指针法详解及模拟面试问答)
|
3天前
|
存储 SQL 算法
LeetCode 题目 86:分隔链表
LeetCode 题目 86:分隔链表
|
3天前
|
存储 SQL 算法
LeetCode 83题:删除排序链表中的重复元素【面试】
LeetCode 83题:删除排序链表中的重复元素【面试】
|
3天前
|
存储 SQL 算法
LeetCode 题目 82:删除排序链表中的重复元素 II
LeetCode 题目 82:删除排序链表中的重复元素 II