N16_合并两个排序链表
题目描述
输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。
package new_offer; /** * * @author Sonya *使用递归 一个为空则返回另一个 再比较两个开头节点 大的雨list.next继续进行比较 */ public class N16_Merge_List { public ListNode Merge(ListNode list1,ListNode list2) { if(list1==null)return list2; if(list2==null)return list1; if(list1.val<=list2.val) { list1.next= Merge(list1.next,list2); return list1; } else { list2.next=Merge(list1,list2.next); return list2; } } public static void main(String[] args) { // TODO Auto-generated method stub N16_Merge_List n16=new N16_Merge_List(); ListNode listNode=new ListNode(1); ListNode L2=new ListNode(2); ListNode L3=new ListNode(3); ListNode L4=new ListNode(4); ListNode L5=new ListNode(5); listNode.next=L2; L2.next=L3; L3.next=null; L4.next=L5; L5.next=null; ListNode p; p=n16.Merge(listNode,L4); while(p!=null) { System.out.println(p.val); p=p.next; } } }