LeetCode 147. Insertion Sort List
2018-01-20 22:34
399 查看
问题描述
https://leetcode.com/problems/insertion-sort-list/description/Sort a linked list using insertion sort.
问题分析
给定一个链表,对这个链表进行插入排序。步骤:
第一个:是从原有的链表中取出一个节点。
第二步:在排序后的链表中找出对应节点的位置
第三步:将取出的节点插入到对应的链表中去。
代码实现
public ListNode insertionSortList(ListNode head) { ListNode helper = new ListNode(0); //使用两个指针指向旧和新的两个链表 ListNode oldPoint = head; ListNode newPoint = helper; ListNode temp = null; while (oldPoint != null) { temp = oldPoint; //开始寻找位置 newPoint = helper; while (newPoint.next != null && newPoint.next.val <= oldPoint.val) { newPoint = newPoint.next; } oldPoint = oldPoint.next; temp.next = newPoint.next; newPoint.next = temp; } return helper.next; }
总结
在查找插入的位置的时候。需要用找到上一个节点的位置。这里的处理方式是使用了一个Helper节点来做头节点。对于取出节点的时候,务必需要用一个单独的指针来指引。同时将之前的关系给切断。
相关文章推荐
- Leetcode——147. Insertion Sort List
- [leetcode] 147. Insertion Sort List 解题报告
- [LeetCode]147. Insertion Sort List 深入浅出讲解和代码示例
- 【leetcode】147. Insertion Sort List
- Leetcode刷题记——147. Insertion Sort List(插入排序链表)
- [Leetcode] 147. Insertion Sort List 解题报告
- leetcode 147. Insertion Sort List
- [leetcode] 【排序】 147. Insertion Sort List
- [LeetCode] 147. Insertion Sort List
- LeetCode-147. Insertion Sort List (JAVA)链表插入排序
- leetcode 147. Insertion Sort List
- LeetCode 147. Insertion Sort List
- Leetcode 147. Insertion Sort List
- [leetcode] 147. Insertion Sort List
- LeetCode 147. Insertion Sort List
- LeetCode 147. Insertion Sort List
- 【LeetCode】 147. Insertion Sort List
- LeetCode 147. Insertion Sort List(插入有序链表)
- leetcode147. Insertion Sort List
- leetcode No147. Insertion Sort List