21. Merge Two Sorted Lists(Linked List-Easy)
2017-03-23 21:12
453 查看
转载请注明作者和出处:http://blog.csdn.net/c406495762
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.
将两个排序的链表合并,返回一个新链表,返回的新链表也是排好序的。
解题思路:
创建两个链表,一个负责保存头节点,一个负责记录比较后的结果。
Language : c
Language : cpp
Language:python
LeetCode题目汇总: https://github.com/Jack-Cherish/LeetCode
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.
将两个排序的链表合并,返回一个新链表,返回的新链表也是排好序的。
解题思路:
创建两个链表,一个负责保存头节点,一个负责记录比较后的结果。
Language : c
/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */ struct ListNode* mergeTwoLists(struct ListNode* l1, struct ListNode* l2) { struct ListNode* newlist = (struct ListNode *)malloc(sizeof(struct ListNode)); struct ListNode* temp = (struct ListNode *)malloc(sizeof(struct ListNode)); newlist = temp; while(l1 && l2){ if(l1->val < l2->val){ temp->next = l1; l1 = l1->next; } else{ temp->next = l2; l2 = l2->next; } temp = temp->next; } temp->next = l1 ? l1 : l2; return newlist->next; }
Language : cpp
/** * 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 newlist(INT_MIN); ListNode *temp = &newlist; if(l1 == NULL && l2 == NULL){ return NULL; } if(l1 != NULL && l2 == NULL){ return l1; } if(l1 == NULL && l2 != NULL){ return l2; } while(l1 && l2){ if(l1->val < l2->val){ temp->next = l1; l1 = l1->next; } else{ temp->next = l2; l2 = l2->next; } temp = temp->next; } temp->next = l1 ? l1 : l2; return newlist.next; } };
Language:python
# Definition for singly-linked list. # class ListNode(object): # def __init__(self, x): # self.val = x # self.next = None class Solution(object): def mergeTwoLists(self, l1, l2): """ :type l1: ListNode :type l2: ListNode :rtype: ListNode """ result = cur = ListNode(0) while l1 and l2: if l1.val < l2.val: cur.next = l1 l1 = l1.next else: cur.next = l2 l2 = l2.next cur = cur.next cur.next = l1 or l2 return result.next
LeetCode题目汇总: https://github.com/Jack-Cherish/LeetCode
相关文章推荐
- 21. Merge Two Sorted Lists(Linked List)
- Remove Duplicates from Sorted List && Merge Two Sorted Lists && Linked List Cycle && Remove Nth Node
- LeetCode@LinkedList_21_Merge_Two_Sorted_Lists
- LinkedList-21-Merge Two Sorted Lists
- 21. Merge Two Sorted Lists (Easy)
- LeetCode 学习 LinkedList 专项(4)—— Merge Two Sorted Lists
- 21. Merge Two Sorted Lists 和 148. Sort List
- 【LeetCode】【Linked List】Merge Two Sorted Lists
- LeetCode_Linked List_Merge Two Sorted Lists
- LeetCode 21 Merge Two Sorted Lists(合并两个已排序的链表)(Linked List)
- LeetCode_Easy心得:21. Merge Two Sorted Lists(C语言)
- Leetcode:21. Merge Two Sorted Lists(JAVA)
- merge two sorted linked list without duplicates
- LeetCode:21_Merge Two Sorted Lists | 合并两个排序列表 | Easy
- 21. Merge Two Sorted Lists(第七周)
- 21. Merge Two Sorted Lists(合并有序链表)
- 160. Intersection of Two Linked Lists(Linked List-Easy)
- Merge Two Sorted Lists(easy)
- 21. Merge Two Sorted Lists(java)
- 21.[Leetcode]Merge Two Sorted Lists