题解 | #单链表的排序#

单链表的排序

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

import java.util.*;

/*

  • public class ListNode {
  • int val;
  • ListNode next = null;
  • } */

public class Solution { /** * * @param head ListNode类 the head node * @return ListNode类 */ public ListNode sortInList (ListNode head) { // write code here if(head==null||head.next==null){ return head; } ListNode slow=head; ListNode faster=head.next; while(faster!=null&&faster.next!=null){ slow=slow.next; faster=faster.next.next; } ListNode mid=slow.next; slow.next=null;

    ListNode left=sortInList(head);
    ListNode right=sortInList(mid);
    ListNode tail=new ListNode(-1);
    ListNode temp=tail;
    while(left!=null&&right!=null){
        if(left.val>=right.val){
            temp.next=right;
            right=right.next;
        }else{temp.next=left;
         
              left=left.next;
            
        }
        temp=temp.next;
    }
    if(temp!=null)
    temp.next=(left!=null)?left:right;
    return tail.next;
    
}

}

我居南半坡 文章被收录于专栏

多刷题,积蓄力量,欢迎讨论

全部评论

相关推荐

04-25 18:13
五邑大学 Java
后来123321:大二两段实习太厉害了,我现在大二连面试都没有
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务