题解 | #单链表的排序#

单链表的排序

http://www.nowcoder.com/practice/f23604257af94d939848729b1a5cda08

思路:
1.遍历链表,把链表放入list集合中
2.利用集合中的sort方法,对ListNode按照val值升序排序。
注意;此处我使用Collections.sort(list,new comparator<>(){})的方式测试时正常,最终提交时超时了,而使用lambda表达式就成功了,也许是我哪里写错了。
3.最后再遍历list集合,一个一个串起来即可。

public ListNode sortInList (ListNode head) {
        // write code here
        ArrayList<ListNode> list=new ArrayList<ListNode>();
        ListNode h=head;
        while(h!=null){
            list.add(h);
            h=h.next;
        }
        list.sort((o1,o2)->{
            return o1.val-o2.val;
        });
        ListNode head_new=new ListNode(-1);
        ListNode p=head_new;
        for(ListNode node:list){
            p.next=node;
            p=p.next;
        }
        p.next=null;
        return head_new.next;
    }
全部评论

相关推荐

07-30 11:23
门头沟学院 Java
点赞 评论 收藏
分享
自学java狠狠赚一...:骗你点star的,港卵公司,记得把star收回去
点赞 评论 收藏
分享
昨天 14:17
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务