合并两个排序链表
来源:互联网 发布:node全栈工程师招聘 编辑:程序博客网 时间:2024/05/03 18:22
题目:合并两个排序链表
问题描述:将两个排序链表合并为一个新的排序链表。如:给出 1->3->8->11->15->null
,2->null
, 返回1->2->3->8->11->15->null
。
思路:先假设链表1的头结点的值小于链表2的头结点的值,然后就用链表1的头结点作为合并后的链表的头结点。然后继续合并两个链表中剩余的结点。两个链表中剩下的结点依然是排序的,所以合并这两个链表的步骤和前面的步骤一样,就可以定义一个递归函数来完成这个过程
代码:
class Solution {
public:
/**
* @param ListNode l1 is the head of the linked list
* @param ListNode l2 is the head of the linked list
* @return: ListNode head of linked list
*/
ListNode *mergeTwoLists(ListNode *l1, ListNode *l2) {
// write your code here
if(!l1)return l2;
else if(!l2)return l1;
else{
if(l1->val>l2->val)
return mergeTwoLists(l2,l1);
else{
ListNode*t1 = l1,*t2=l2;
ListNode*head = t1;
while(t2){
while(t1->next&&t2->val>t1->next->val){
t1 = t1->next;
}
ListNode*temp = t2->next;
t2->next = t1->next;
t1->next=t2;
t2=temp;
t1=t1->next;
}
return head;
}
}
}
};
- 合并两个排序链表
- 合并两个排序链表
- 合并两个排序链表
- 合并两个排序链表
- 合并两个排序链表
- 合并两个排序链表
- 合并两个排序链表
- 合并两个排序链表
- 合并两个排序链表
- 合并两个排序链表
- 合并两个排序链表
- 合并两个排序链表
- 合并两个排序链表
- 合并两个排序链表
- 合并两个排序链表
- 合并两个排序链表
- 合并两个排序链表
- 合并两个排序链表
- 索智R16点亮ov7725.txt
- Android——获得自己手机内部的传感器
- android 导入so库文件
- bzoj3894: 文理分科
- Spark2.1集群环境搭建小结(1)
- 合并两个排序链表
- 三月三十
- 在SpringMVC下面从零开始构建WebSocket服务
- LeetCode-Easy部分标签为HashTable#136 Single Number
- 结构体对齐问题
- 机器学习(4):python基础及fft、svd、股票k线图、分形等实践
- 细说new与malloc的10点区别
- 【模拟试题】逛公园
- H.264中的一些语法定义