# 2046. Sort Linked List Already Sorted Using Absolute Values ###### tags: `Leetcode` `Medium` `Linked List` Link: https://leetcode.com/problems/sort-linked-list-already-sorted-using-absolute-values/description/ ## 思路 按常理建一个dummyNode放在head前面 然后遍历整个linkedlist 每次遇到负值 就把这个node挪到dummynode的后面 例如```[0,2,-5,5,10,-10]->[dummy, 0,2,-5,5,10,-10]->[dummy,-5,0,2,5,10,-10]->[dummy,-10,-5,0,2,5,10]``` 要注意如果第一个数是负数 其实是不用动它的 如果line7不加```curr!=head```的条件 那么当只有一个node[-1]时就会错 ## Code ```java= class Solution { public ListNode sortLinkedList(ListNode head) { ListNode dummyNode = new ListNode(); dummyNode.next = head; ListNode curr = head, prev = dummyNode; while(curr!=null){ if(curr.val<0 && curr!=head){ ListNode currNext = curr.next; ListNode dummyNext = dummyNode.next; dummyNode.next = curr; curr.next = dummyNext; prev.next = currNext; curr = currNext; } else{ prev = curr; curr = curr.next; } } return dummyNode.next; } } ```