LeetCode OJ:Merge Two Sorted Lists(合并两个链表)
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.
注意题目要求合并的时候不能新建节点,直接使用原来的节点,比较简单,代码如下:
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {
if(l1 == NULL) return l2;
if(l2 == NULL) return l1;
ListNode * root = new ListNode(-);
ListNode * helper = root;
while(l1!=NULL && l2!=NULL){
if(l1->val <= l2->val)
root->next = l1, l1=l1->next;
else if(l1->val > l2->val)
root->next = l2, l2=l2->next;
root = root->next;
}
while(l1!=NULL){
root->next = l1;
l1 = l1->next;
root = root->next;
}
while(l2!=NULL){
root->next = l2;
l2 = l2->next;
root = root->next;
}
return helper->next;
}
};
 public class Solution {
     public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
         ListNode helper = new ListNode(0);
         ListNode ret = helper;
         if(l1 == null) return l2;
         if(l2 == null) return l1;
         while(l1 != null && l2 != null){
             if(l1.val < l2.val){
                 helper.next = l1;
                 l1 = l1.next;
             }else{
                 helper.next = l2;
                 l2 = l2.next;
             }
             helper = helper.next;
         }
         while(l1 != null){
             helper.next = l1;
             l1 = l1.next;
             helper = helper.next;
         }
         while(l2 != null){
             helper.next = l2;
             l2 = l2.next;
             helper = helper.next;
         }
         return ret.next;
     }
 }
LeetCode OJ:Merge Two Sorted Lists(合并两个链表)的更多相关文章
- [leetcode]21. Merge Two Sorted Lists合并两个链表
		Merge two sorted linked lists and return it as a new list. The new list should be made by splicing t ... 
- LeetCode 21. Merge Two Sorted Lists合并两个有序链表 (C++)
		题目: Merge two sorted linked lists and return it as a new list. The new list should be made by splici ... 
- [LeetCode]21. Merge Two Sorted Lists合并两个有序链表
		Merge two sorted linked lists and return it as a new list. The new list should be made by splicing t ... 
- 【LeetCode】Merge Two Sorted Lists(合并两个有序链表)
		这道题是LeetCode里的第21道题. 题目描述: 将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1->2->4, 1-&g ... 
- leetcode 21 Merge Two Sorted Lists 合并两个有序链表
		描述: 合并两个有序链表. 解决: ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) { if (!l1) return l2; if (!l2) ... 
- [LeetCode] 21. Merge Two Sorted Lists 合并有序链表
		Merge two sorted linked lists and return it as a new list. The new list should be made by splicing t ... 
- 【LeetCode】21. Merge Two Sorted Lists 合并两个有序链表
		作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 个人公众号:负雪明烛 本文关键词:合并,有序链表,递归,迭代,题解,leetcode, 力 ... 
- [LeetCode] 23. Merge k Sorted Lists 合并k个有序链表
		Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity. E ... 
- LeetCode:21_Merge Two Sorted Lists | 合并两个排序列表 | Easy
		题目:Merge Two Sorted Lists Merge two sorted linked lists and return it as a new list. The new list sh ... 
- [LeetCode] 21. Merge Two Sorted Lists 混合插入有序链表
		Merge two sorted linked lists and return it as a new list. The new list should be made by splicing t ... 
随机推荐
- R中apply函数族
			参考于:http://blog.fens.me/r-apply/ 1. apply的家族函数 2. apply函数 apply函数是最常用的代替for循环的函数.apply函数可以对矩阵.数据框.数组 ... 
- 多线程 wait和sleep区别
			wait和sleep区别共同点: 1. 他们都是在多线程的环境下,都可以在程序的调用处阻塞指定的毫秒数,并返回. 2. wait()和sleep()都可以通过interrupt()方法 打断线程的暂停 ... 
- PAT 天梯赛 L1-036. A乘以B 【水】
			题目链接 https://www.patest.cn/contests/gplt/L1-036 AC代码 #include <iostream> #include <cstdio&g ... 
- ASYNCAPI
			https://www.asyncapi.com Introduction AsyncAPI provides a specification that allows you to define Me ... 
- zoj2432
			/* 首先,dp的最开始是定义状态 dp[i][j] 表示A串的前i个,与B串的前j个,并以B[j]为结尾的LCIS 的长度. 状态转移方程: if(A[i]==B[j]) dp[i][j]=max( ... 
- 哆啦A梦里的某一首诗
			<哆啦A梦>长篇<宇宙开拓>主题曲<放松心情>作词:武田铁矢 我终于发现, /昨日失去的一切, /虽然还无法完全意会, /可是对我却非常重要. /加紧脚步追赶, / ... 
- ping主机脚本
			#!/bin/bash #ping net='172.16.1' uphosts=0 downhosts=0 for i in {1..254};do ping -c 1 -w 1 ${net}.${ ... 
- Java_Chapter6_类与对象
			6.1 类与对象的概念 6.2 定义类 class Cylinder { double radius; int height; double pi; void setCylinder(double r ... 
- maven项目包结构
			groupId填写公司名称,如com.enn.ennewartifactId填写项目名称webapps如父工程: <groupId>com.enn.ennew</groupId> ... 
- 关于Block汇总
			//使用总结: //1.当block里面会有b类相关的参数要回调回去的时候,属性用copy修饰,将其拷贝到堆里面,这样即便栈释放掉了,b类的指针也在堆中存在,能够成功的回调回去. //Block默认存 ... 
