题解 | #单链表的排序#
单链表的排序
http://www.nowcoder.com/practice/f23604257af94d939848729b1a5cda08
从链表的第一个节点开始,找到最小的元素进行交换。依次进行,找到次小的元素。。。
/**
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
class Solution {
public:
/**
*
* @param head ListNode类 the head node
* @return ListNode类
*/
ListNode* sortInList(ListNode* head) {
// write code here
ListNode* p = head;
ListNode* q = head;
while(p)
{
q = p;
while(q)
{
if(q->val < p->val)
{
swap(q->val, p->val);
}
q = q->next;
}
p = p->next;
}
return head;
}
};