万钰禄 level
获赞
0
粉丝
0
关注
0
看过 TA
2
西南大学
2025
Java
IP属地:重庆
暂未填写个人简介
私信
关注
03-29 14:06
西南大学 Java
/*————danny的常规方法,注意和回文链表进行区别,这个可以直接用两个现有的链表进行构造,因为原有链表不需要保留;而前面的回文链表需要保留原来链表进行对比,所以不能像这题这样操作。*//*** Definition for singly-linked list.* struct ListNode {*     int val;*     struct ListNode *next;* };*/struct ListNode* mergeTwoLists(struct ListNode* l1, struct ListNode* l2) {//(1)如果l1/l2有空的,则直接将另一个链表给返回if(!l1){return l2;}if(!l2){return l1;}//(2)创建一个头结点并初始化struct ListNode *head = (struct ListNode*)malloc(sizeof(struct ListNode));head->next = NULL;  // 防止脏数据struct ListNode* s = head;  // 使用s进行操作,而不是头结点head//(3)对以head为头结点的链表进行构造(只是对地址操作,并不是创建大量结点)while(l1 && l2){if(l1->val < l2->val){s->next = l1;l1 = l1->next;}else{s->next = l2;l2 = l2->next;}s = s->next;  // 因为x最开始指向的是头结点,每次将下一个位置安排好后,将t移到新链表的最后一个位置}//(4)如果都有数据的区间结束,l1还有元素,则t后面直接接剩余的值if(l1){s->next = l1;}else if(l2){s->next = l2;}//(5)将构造好的链表的第一个具体结点返回return head->next;}
0 点赞 评论 收藏
分享
03-16 10:38
西南大学 Java
0 点赞 评论 收藏
分享

创作者周榜

更多
关注他的用户也关注了:
牛客网
牛客网在线编程
牛客网题解
牛客企业服务