LeetCode 21 Merge Two Sorted Lists (C,C++,Java,Python)
来源:互联网 发布:如何参观清华大学知乎 编辑:程序博客网 时间:2024/03/29 08:26
Problem:
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.
Solution:
两个有序链表,每次取头部最小的那个元素,然后将这个元素从原来链表中去掉,依次循环
题目大意:
给定两个有序链表,要求将链表合并为一个有序链表,并且不能使用额外的空间
Java源代码(344ms):
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */public class Solution { public ListNode mergeTwoLists(ListNode l1, ListNode l2) { ListNode head,p; if(l1==null)return l2; if(l2==null)return l1; if(l1.val > l2.val){ p=l2;l2=l2.next; }else{ p=l1;l1=l1.next; } head=p; while(l1!=null && l2!=null){ if(l1.val > l2.val){ p.next=l2;l2=l2.next; }else{ p.next=l1;l1=l1.next; } p=p.next; } if(l1==null)p.next=l2; else p.next=l1; return head; }}
C语言源代码(3ms):
/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */struct ListNode* mergeTwoLists(struct ListNode* l1, struct ListNode* l2) { struct ListNode *head,*p; if(l1==NULL)return l2; if(l2==NULL)return l1; if(l1->val > l2->val){ p=l2; l2=l2->next; }else{ p=l1; l1=l1->next; } head=p; while(l1!=NULL && l2!=NULL){ if(l1->val > l2->val){ p->next=l2; l2=l2->next; }else{ p->next=l1; l1=l1->next; } p=p->next; } if(l1==NULL)p->next=l2; else p->next=l1; return head;}
C++源代码(13ms):
/** * 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) { ListNode *head,*p; if(l1==NULL)return l2; if(l2==NULL)return l1; if(l1->val > l2->val){ p=l2;l2=l2->next; }else{ p=l1;l1=l1->next; } head=p; while(l1!=NULL && l2!=NULL){ if(l1->val > l2->val){ p->next=l2;l2=l2->next; }else{ p->next=l1;l1=l1->next; } p=p->next; } if(l1==NULL)p->next=l2; else p->next=l1; return head; }};
Python源代码(67ms):
# Definition for singly-linked list.# class ListNode:# def __init__(self, x):# self.val = x# self.next = Noneclass Solution: # @param {ListNode} l1 # @param {ListNode} l2 # @return {ListNode} def mergeTwoLists(self, l1, l2): if l1==None:return l2 if l2==None:return l1 p=l1 if l1.val > l2.val: p=l2;l2=l2.next else:p=l1;l1=l1.next head=p while l1!=None and l2!=None: if l1.val > l2.val: p.next=l2;l2=l2.next else:p.next=l1;l1=l1.next p=p.next if l1==None:p.next=l2 else:p.next=l1 return head
0 0
- LeetCode 21 Merge Two Sorted Lists (C,C++,Java,Python)
- 【leetcode c++】21 Merge Two Sorted Lists
- 【LeetCode-21】 Merge Two Sorted Lists(C++)
- [LeetCode] 021. Merge Two Sorted Lists (Easy) (C++/Python)
- [C++]LeetCode: 13 Merge Two Sorted Lists
- Leetcode 21. Merge Two Sorted Lists(C++)
- 【C++】【LeetCode】21. Merge Two Sorted Lists
- Leetcode c语言- Merge Two Sorted Lists
- LeetCode 23 Merge k Sorted Lists (C,C++,Java,Python)
- [C语言][LeetCode][21]Merge Two Sorted Lists
- LeetCode-21-Merge Two Sorted Lists(C语言实现)
- 【LeetCode 21】Merge Two Sorted Lists(Python)
- LeetCode 21:Merge Two Sorted Lists (Java)
- Merge Two Sorted Lists(C++)
- [LeetCode] 023. Merge k Sorted Lists (Hard) (C++/Java/Python)
- [LeetCode]21. Merge Two Sorted Lists(C++)
- 【LeetCode】21. Merge Two Sorted Lists C语言
- 【LeetCode算法练习(C++)】Merge Two Sorted Lists
- ch4_1_1.m
- C primer plus(第五版)编程练习第七章
- the object of type 'Transform' has been destroyed but your are still trying to access it
- ch4_1_2.m
- java 嵌套管程锁死
- LeetCode 21 Merge Two Sorted Lists (C,C++,Java,Python)
- Error: Unsupported java version '1.8' in line 2 of file 'proguard.conf'
- “student a am i”的倒置
- Spec2006 编译错误
- CSS属性position详解
- ch4_1_6.m 正变换与反变换结合
- 计算任何一天是星期几的几种算法
- hdu 5225 Tom and permutation && BestCoder Round #40
- mysqldump 和还原