剑指offer面试题25:合并两个排序的链表(Java 实现)
2019-01-16 11:46
399 查看
题目:输入两个递增排序的链表,合并这两个链表并使新链表中的结点仍然是按照递增排序的。
思路:分别遍历两个链表,每一个都比较两个链表的头结点,把小的那一个头结点放到一个新定义的链表中,因为每一个比较合并的过程都是一模一样的,所以可以使用递归来实现。这里要注意输入的链表为空的特殊情况。
测试用例:
- 功能测试:输入的两个链表有多个节点;节点的值互不相同或者存在值相等的多个节点。
- 特殊测试:两个链表中只有一个节点。
- 负面测试:两个链表的其中一个头结点为空或者两个头结点都为空。
public class test_twenty_five { public ListNode Merge(ListNode list1, ListNode list2){ //如果链表一为空就返回链表二,如果链表二为空就返回链表一,如果都为空就随便返回一个,反正都是空 if(list1 == null)return list2; if(list2 == null)return list1; ListNode list0 = null; //定义list0来保存节点 //每一次都比较两个链表的头结点,把小的那个放到list0中,然后递归进行下一次的比较 if(list1.val < list2.val){ list0 = list1; list0.next = Merge(list1.next,list2); } else{ list0 = list2; list0.next = Merge(list1,list2.next); } return list0; }
相关文章推荐
- 剑指Offer 面试题25:合并两个排序的链表(递归+非递归) Java代码实现
- 剑指offer--面试题25:合并两个排序的链表
- JAVA实现合并两个排序的链表(《剑指offer》)
- 剑指offer面试题25:合并两个排序的链表-java
- 剑指offer 面试题17 合并两个排序的链表-Java实现
- 剑指Offer--面试题17:合并两个排序的链表--Java实现
- 剑指offer-chapter3-面试题17-合并两个排序的链表(java)
- JAVA实现合并两个排序的链表(《剑指offer》)
- 《剑指offer》编程题java实现(十七):合并两个排序的链表
- 【剑指offer】面试题 25:合并两个排序的链表
- 剑指offer题解【合并两个排序的链表】-java
- 面试题7:合并两个排序的链表(java)
- 剑指offer:面试题 17:合并两个排序的链表
- 剑指offer-面试题17:合并两个排序的链表
- 剑指Offer-25:合并两个排序的链表
- (剑指Offer)面试题17:合并两个排序的链表
- 剑指offer 面试题15 合并两个排序的链表
- 《剑指offer》面试题17:合并两个排序的链表
- 剑指Offer之面试题17:合并两个排序的链表
- 剑指offer——面试题17:合并两个排序的链表