题目所属分类
原题链接
给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 。
代码案例:
输入:head = [4,2,1,3]
输出:[1,2,3,4]
题解
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode() {}
* ListNode(int val) { this.val = val; }
* ListNode(int val, ListNode next) { this.val = val; this.next = next; }
* }
*/
class Solution {
public ListNode sortList(ListNode head) {
int n = 0 ;
for(ListNode p = head ; p != null ; p = p.next ) n ++ ;
ListNode dummy = new ListNode(-1);
dummy.next = head ;
for(int i = 1 ; i < n ; i *= 2){
//第一行
ListNode cur = dummy;