(链表)12-单链表的排序

复制代码
 1 import java.util.*;
 2 
 3 /*
 4  * public class ListNode {
 5  *   int val;
 6  *   ListNode next = null;
 7  *   public ListNode(int val) {
 8  *     this.val = val;
 9  *   }
10  * }
11  */
12 public class Solution {
13     /**
14      * @param head 输入链表的头结点
15      * @return 排序后的链表头节点
16      */
17     public ListNode sortInList (ListNode head) {
18         // 申请临时数组用于排序
19         ArrayList<Integer> nums = new ArrayList();
20         // 申请临时节点作为遍历指针
21         ListNode p = head;
22         // 遍历链表将节点值加入数组
23         while(p != null){
24             nums.add(p.val);
25             p = p.next;
26         }
27         // 对数组元素排序
28         Collections.sort(nums);
29         // 将临时节点指向头结点用于排序后的赋值
30         p = head;
31         // 遍历数组赋值
32         for(int i = 0; i < nums.size(); i++){
33             // 将数组元素依次加入链表
34             p.val = nums.get(i);
35             p = p.next;
36         }
37         return head;
38     }
39 }
复制代码

 

posted @   StringBuilder  阅读(9)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示