Leetcode刷题记——21. Merge Two Sorted Lists(合并两有序链表)
来源:互联网 发布:域名授权 编辑:程序博客网 时间:2024/06/01 07:25
一、题目叙述:
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.
Subscribe to see which companies asked this question
二、解题思路:
easy题,合并两个有序链表,要求新的链表由两个给定链表的结点拼接而成,很简单,有点类似于归并排序。
(1)两个指针对应于两个链表,比较大小,小的结点加入新链表,并且其指针后移。
(2)考虑一个链表结点加入完毕,剩另一链表的情况
(3)考虑两个链表都为空或者一个链表为空的情况。
三、源码:
/** * 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 p; if (l1 == null && l2 == null) return null; if (l1 == null) return l2; if (l2 == null) return l1; if (l1.val <= l2.val) { p = l1; l1 = l1.next; } else { p = l2; l2 = l2.next; } ListNode merge = p; while (l1 != null && l2 != null) { if (l1.val <= l2.val) { p.next = l1; p = p.next; l1 = l1.next; } else { p.next = l2; p = p.next; l2 = l2.next; } } if (l1 != null) p.next = l1; if (l2 != null) p.next = l2; return merge; } public void print(ListNode root) { System.out.print(root.val + "\t"); if (root.next != null) print(root.next); } public static void main(String args[]) { ListNode l1 = new ListNode(2); ListNode a = l1; a.next = new ListNode(3); a = a.next; a.next = new ListNode(4); ListNode l2 = new ListNode(1); ListNode b = l2; b.next = new ListNode(6); b = b.next; //b.next = new ListNode(4); Solution s = new Solution(); s.print(s.mergeTwoLists(l1, l2)); //s.print(l1); } }
0 0
- Leetcode刷题记——21. Merge Two Sorted Lists(合并两有序链表)
- 21. Merge Two Sorted Lists(合并有序链表)
- Merge Two Sorted Lists 合并两个有序链表@LeetCode
- [LeetCode]Merge Two Sorted Lists-合并两个有序链表
- Leetcode Merge Two Sorted Lists 合并两个有序链表
- leetcode Merge Two Sorted Lists 合并两个有序链表
- Leetcode Merge Two Sorted Lists(合并两个有序表)
- Merge Two Sorted Lists(合并两个有序链表)
- LeetCode 21. Merge Two Sorted Lists(合并链表)
- LeetCode OJ 之 Merge Two Sorted Lists(合并两个有序的链表)
- [LeetCode-21] Merge Two Sorted Lists(合并两个有序链表)
- LeetCode Merge Two Sorted Lists(合并两个有序链表)
- Leetcode刷题记——88. Merge Sorted Array(合并有序数组)
- LeetCode | Merge Two Sorted Lists(合并两个链表)
- LeetCode 21 Merge Two Sorted Lists(合并链表)
- 两个有序链表的合并 Merge Two Sorted Lists
- Merge Two Sorted Lists 合并两个有序链表
- Merge Two Sorted Lists, 合并两个有序链表
- shell编程——if语句 if -z -n -f -eq -ne -lt
- 防止头文件重复包含的宏定义模板
- 203. Remove Linked List Elements
- 基于python实现jenkins自动发布代码平台
- 如何在java代码中设置margin属性
- Leetcode刷题记——21. Merge Two Sorted Lists(合并两有序链表)
- 图形界面编程(四) 尺寸、坐标、边界
- ImageLoader的汇总
- 简单说说:ognl表达式语言和EL表达式语言的区别(无代码例子)
- 图像处理之卷积概念
- Java垃圾收集机制
- 在O(1)时间复杂度删除链表节点
- apk增量更新的初步实现
- 图形界面编程(五) 布局容器类(1)