Leetcode 147. Insertion Sort List
2017-06-12 15:44
417 查看
题目:
Sort a linked list using insertion sort.思路:
使用一个指针p指向未排好序的链表的第一个结点,在排序好的部分中找到找第一个大于等于q的前驱结点,将p对应的结点插入到正确位置,p重新指向未排好序的链表的第一个结点。直到链表完成排序好。代码实现
代码:
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: ListNode *insertionSortList(ListNode *head) { if (head == NULL || head->next == NULL) return head; ListNode *p = head->next; head->next = NULL; while (p != NULL) { ListNode *pNext = p->next; /*store the next node to be insert*/ ListNode *q = head; if (p->val < q->val) /*node p should be the new head*/ { p->next = q; head = p; } else { while (q != NULL && q->next != NULL && q->next->val <= p->val) q = q->next; p->next = q->next; q->next = p; } p = pNext; } return head; } };
相关文章推荐
- [leetcode] 147. Insertion Sort List
- leetcode题解-链表排序算法 147. Insertion Sort List && 148 . 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
- 147. Insertion Sort List LeetCode
- 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 No147. 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 解题报告