单链表的归并排序
来源:互联网 发布:js如何设置按钮 编辑:程序博客网 时间:2024/05/21 05:38
/** * Definition for singly-linked list. * class ListNode { * int val; * ListNode next; * ListNode(int x) { * val = x; * next = null; * } * } */public class Solution { public ListNode sortList(ListNode head) { //if(head == null) return null; //ListNode res = split(head); return split(head); } //使用快慢指针获取链表中点并进行分割 static ListNode split(ListNode head){ if(head == null || head.next == null) return head; ListNode p1 = head; ListNode p2 = head.next; while(p1 != null && p2 != null && p2.next != null){ p1 = p1.next; p2 = p2.next.next; } ListNode right = split(p1.next); p1.next = null; ListNode left = split(head); return merge(right, left); } //合并两个有序的链表 public static ListNode merge(ListNode list1, ListNode list2){ if(list1 == null) return list2; if(list2 == null) return list1; if(list1.val > list2.val){ list2.next = merge(list1, list2.next); return list2; }else{ list1.next = merge(list1.next, list2); return list1; } }}
阅读全文
0 0
- 单链表的归并排序
- 单链表的归并排序
- 单链表的归并排序
- 单链表的归并排序
- 单链表的归并排序
- 单链表的归并排序
- 单链表的归并排序
- 单链表的归并排序
- 单链表的归并排序
- 单链表的归并排序
- 自然归并排序和单链表实现的归并排序
- 单链表的排序(归并排序)
- 单链表的快速排序和归并排序
- 用归并排序实现单链表的排序
- 单链表的归并排序和插入排序
- 归并排序以及归并排序的优化
- 单链表的排序 快速排序 归并排序 quicksort mergesort
- 单链表的归并、快速排序 C++
- 字符转整数 算法
- Python统计字符出现次数
- Linux学习之路-程序控制结构
- TensorFlow指定特定GPU以及占用显存的比例
- centos 6下搭建网站
- 单链表的归并排序
- <8/22>集训日记
- Python网络爬虫与信息提取-Day1-requests库(1)
- HDU1269 迷宫城堡 强联通分量Tarjan算法
- hdu 6161 Big binary tree
- 51Nod
- Python求水仙花数
- 简单理解Python中的类对象、实例对象、属性、方法
- JAVA基础---简易自动售货机