leetcode 21. Merge Two Sorted Lists(C语言,合并两个排序的链表为一个排序链表)32
来源:互联网 发布:cf手游剑齿虎优化 编辑:程序博客网 时间:2024/06/15 22:40
贴原题:
Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists.
解析:
题目意思在标题就说明了,合并两个排序的链表为一个排序链表,这种题也是数据结构里的基础题目。
我的思路是声明出两个链表指针,一个指向要返回的链表头结点,另一个(p)用来在要返回的链表上移动,即指向链表最后一个元素,用这个指针链接每个元素。然后顺序比较l1和l2的元素大小,那个大则p就指向该元素,并移位。
贴代码:
/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */struct ListNode* mergeTwoLists(struct ListNode* l1, struct ListNode* l2) { if(!l1)//第一个链表为空,则直接返回第二个链表 { return l2; } if(!l2)//第二个链表为空则返回第一个 { return l1; } struct ListNode *p, *list; if(l1->val <= l2->val)//比较l1和l2头结点 { p = l1; l1 = l1->next; } else { p = l2; l2 = l2->next; } list = p;//使list指向头结点 while(l1 && l2)//其中一个链表插入完则跳出循环 { if(l1->val < l2->val) { p->next = l1; l1 = l1->next;//指向下一个元素 } else { p->next = l2; l2 = l2->next; } p->next->next = NULL;//清空下下一个节点 p = p->next;//移向新增加的节点 } if(l1)//使p->next指向剩下未完结的链表的头结点 { p->next = l1; } else if(l2) { p->next = l2; } return list;}
阅读全文
0 0
- leetcode 21. Merge Two Sorted Lists(C语言,合并两个排序的链表为一个排序链表)32
- LeetCodet题解--21. Merge Two Sorted Lists(合并两个排序好的链表)
- LeetCode 21 Merge Two Sorted Lists(合并两个已排序的链表)(Linked List)
- 21. Merge Two Sorted Lists &合并两个排序的链表
- LeetCode-21- Merge Two Sorted Lists(合并两个已排序链表)
- LeetCode | Merge Two Sorted Lists(合并两个链表)
- 165.Merge Two Sorted Lists-合并两个排序链表(容易题)
- Merge Two Sorted Lists 合并两个有序链表@LeetCode
- [LeetCode]Merge Two Sorted Lists-合并两个有序链表
- Leetcode Merge Two Sorted Lists 合并两个有序链表
- leetcode Merge Two Sorted Lists 合并两个有序链表
- leetCode 21.Merge Two Sorted Lists (合并排序链表) 解题思路和方法
- 21. Merge Two Sorted Lists 合并两个排序的列表
- LeetCode 21. Merge Two Sorted Lists(合并链表)
- LeetCode OJ 之 Merge Two Sorted Lists(合并两个有序的链表)
- [C++]Merge Two Sorted Lists 归并两个排序的链表
- 两个有序链表的合并 Merge Two Sorted Lists
- Merge Two Sorted Lists(合并两个有序链表)
- Effective STL学习笔记-条款30
- MySQL多个数据表关系
- 6. 同步化器(Synchronizers)
- 网站开发进阶(十二)JS实现打印功能(包括打印预览、打印设置等)
- ctf隐写篇
- leetcode 21. Merge Two Sorted Lists(C语言,合并两个排序的链表为一个排序链表)32
- python学习:字典
- JVM 运行时数据区——方法区、堆、栈
- 6.1倒计时锁(Countdown Latches)
- LeetCode 0101
- Edit Distance(Dynamic Programming)
- SPI通信协议(SPI总线)学习
- CentOS7安装经典Web架构:LAMP
- 题目738:Calendar Game