合并两个已排序的链表
来源:互联网 发布:淘宝延长收货最多几天 编辑:程序博客网 时间:2024/05/16 06:39
题目:输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。
思路:由于两个链表都已经排好序了,那么我们只要对比两个链表的当前头结点,并将较小的那个链接到新链表的后面即可。
注意:有可能一个链表已经遍历完了,另一个链表还没完,只需将剩下链表的元素对应拷入即可。
下面是我的代码实现,不足之处,欢迎批评指正。
/*
struct ListNode {int val;
struct ListNode *next;
ListNode(int x) :
val(x), next(NULL) {
}
};*/
class Solution {
public:
ListNode* Merge(ListNode* pHead1, ListNode* pHead2) {
if(pHead1==NULL) return pHead2;
if(pHead2==NULL) return pHead1;
ListNode* newhead=NULL;
ListNode* temp=NULL;
if(pHead1->val<pHead2->val) {
temp=pHead1;
pHead1=pHead1->next;
}
else {
temp=pHead2;
pHead2=pHead2->next;
}
newhead=temp;
while(pHead1&&pHead2){
if(pHead1->val<pHead2->val) {
temp->next=pHead1;
temp=temp->next;
pHead1=pHead1->next;
}
else {
temp->next=pHead2;
temp=temp->next;
pHead2=pHead2->next;
}
}
while(pHead1){
temp->next=pHead1;
temp=temp->next;
pHead1=pHead1->next;
}
while(pHead2){
temp->next=pHead2;
temp=temp->next;
pHead2=pHead2->next;
}
return newhead;
}
};
1 0
- 两个已排序链表的合并
- 两个已排序链表的合并
- 合并两个已排序的链表
- 合并两个已排序的链表
- 合并两个已排序的链表
- 合并两个已排序的链表
- 合并两个已排序的链表
- 如何合并两个已排序的表?
- 将两个已排序的链表合并
- 排序1:合并两个已排序的表
- 两个已排序的数组进行合并
- 合并两个已排序的数组
- 合并两个已排序单链表
- 合并两个已排序数组
- 合并两个排序的链表
- 合并两个排序的链表
- 合并两个排序的链表
- 合并两个排序的链表
- 简易版的随机地图方法,适合少数场景
- RelativeLayout重要属性
- 定义变量的位置 @interface VS @implementation
- 为listview,gridview添加布局动画效果(通过资源文件方式)
- STL之容器、迭代器及算法知识总结
- 合并两个已排序的链表
- linux 下搭建从coturn服务器(穿透服务器)
- 大数相加
- PHP扩展开发-接收参数、返回参数
- typedef与#define的区别
- Contains Duplicate III 是否包含重复元素系列3
- Bitcode真机测试要修改为 NO
- oracle 监听hang住问题
- 查找WPF控件的默认Style的方法