LeetCode 21 — Merge Two Sorted Lists(C++ Java Python)
来源:互联网 发布:怎么申请退款淘宝 编辑:程序博客网 时间:2024/06/03 21:09
题目:http://oj.leetcode.com/problems/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.
题目翻译:
合并两个有序链表,并返回该新链表。新链表应该由前两个链表中的节点拼接生成。
分析:
使用归并的思想,每次选择值较小的节点接到新链表的后面。
C++实现:
/** * 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 *node = NULL;if(l1->val <= l2->val){node = l1;l1 = l1->next;}else{node = l2;l2 = l2->next;}ListNode *head = node;while(l1 != NULL && l2 != NULL){if(l1->val <= l2->val){node->next = l1;node = node->next;l1 = l1->next;}else{node->next = l2;node = node->next;l2 = l2->next;}}if(l1 != NULL){node->next = l1;}else if(l2 != NULL){node->next = l2;}return head; }};
Java实现:
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { * val = x; * next = null; * } * } */public class Solution { public ListNode mergeTwoLists(ListNode l1, ListNode l2) {if (l1 == null) {return l2;}if (l2 == null) {return l1;}ListNode node = null;ListNode head = null;while (l1 != null && l2 != null) {if (l1.val <= l2.val) {if (node == null) {node = l1;head = node;} else {node.next = l1;node = node.next;}l1 = l1.next;} else {if (node == null) {node = l2;head = node;} else {node.next = l2;node = node.next;}l2 = l2.next;}}if (l1 != null) {node.next = l1;} else if (l2 != null) {node.next = l2;}return head; }}
Python实现:
# Definition for singly-linked list.# class ListNode:# def __init__(self, x):# self.val = x# self.next = Noneclass Solution: # @param two ListNodes # @return a ListNode def mergeTwoLists(self, l1, l2): if l1 == None: return l2 if l2 == None: return l1 node = None while l1 != None and l2 != None: if l1.val <= l2.val: if node == None: node = l1 head = node else: node.next = l1 node = node.next l1 = l1.next else: if node == None: node = l2 head = l2 else: node.next = l2 node = node.next l2 = l2.next if l1 != None: node.next = l1 elif l2 != None: node.next = l2 return head
感谢阅读,欢迎评论!
0 0
- LeetCode 21 Merge Two Sorted Lists (C,C++,Java,Python)
- 【LeetCode 21】Merge Two Sorted Lists(Python)
- LeetCode 21 — Merge Two Sorted Lists(C++ Java Python)
- 【leetcode c++】21 Merge Two Sorted Lists
- 【LeetCode-21】 Merge Two Sorted Lists(C++)
- LeetCode 21:Merge Two Sorted Lists (Java)
- LeetCode(21)Merge Two Sorted Lists
- LeetCode (21)Merge Two Sorted Lists
- [LeetCode] 021. Merge Two Sorted Lists (Easy) (C++/Python)
- 【LeetCode with Python】 Merge Two Sorted Lists
- [leetcode:python]21.Merge Two Sorted Lists
- Leetcode-Merge Two Sorted Lists-Python
- 【Leetcode】【python】Merge Two Sorted Lists
- [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
- Python学习——leetcode(Merge Two Sorted Lists )
- 面向对象的基本概念与设计模式的基本原则
- JMS和ActiveMQ介绍(3)_ActiveMQ
- oracle触发器示例
- nyoj-171-聪明的KK
- 4.菜鸟启程,向大牛进发
- LeetCode 21 — Merge Two Sorted Lists(C++ Java Python)
- SSH原理与运用(一):远程登录
- 我的电脑编程初学之谈1
- HttpClient4.X 升级 入门 + http连接池使用-too many open files
- 语音信号处理初学者概念总结
- ARM编程注意事项总结
- 常见面试题 总结
- failed to install Tomcat6 service解决办法
- android 获取view在屏幕中的位置