(链表)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 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理