【Java面试题】合并链表
程序员文章站
2024-03-22 11:46:52
...
【题目】:
输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。
【示例】:
已有两递增链表:12689和3457
合并:
结果:123456789
【关键点】: 链表,递归
【Java】:
/*
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}*/
public class Solution {
public ListNode Merge(ListNode list1,ListNode list2) {
if(list1==null){
return list2;
}else if(list2==null){
return list1;
}
ListNode pMergeHead = null;
if(list1.val<list2.val){//合成的链表表头始终指向较小的一个
pMergeHead = list1;
pMergeHead.next = Merge(list1.next,list2);//递归
}else{
pMergeHead = list2;
pMergeHead.next = Merge(list1,list2.next);
}
return pMergeHead;
}
}