《剑指offer》合并两个排序的链表

来源:互联网 发布:java 解压缩tar文件 编辑:程序博客网 时间:2024/06/07 12:11

题目:输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。

解析:先把两个链表的值都取出来放在list里,再对值排序,排完序后就创建链表返回

/*public class ListNode {    int val;    ListNode next = null;    ListNode(int val) {        this.val = val;    }}*/import java.util.ArrayList;import java.util.Collections;import java.util.List;public class Solution {    public ListNode Merge(ListNode list1,ListNode list2) {         if(list1==null&&list2==null){             return null;         }         if(list1==null){             return list2;         }         if(list2==null){             return list1;         }         List<Integer> list = new ArrayList<Integer>();//存放两个链表的值         while (list1!=null){             list.add(list1.val);             list1=list1.next;         }         while (list2!=null){             list.add(list2.val);             list2=list2.next;         }        Collections.sort(list);//把链表里的数值进行排序        ListNode head= new ListNode(list.get(0));        for(int i=list.size()-1;i>=1;i--){//尾插法创建单链表            ListNode p = new ListNode(list.get(i));            p.next=head.next;            head.next=p;        }        return head;    }}



原创粉丝点击