链表从小到大排序问题?
这个代码中 head -> next -> next == NULL 这是什么意思?书上写的代码一般是head->next就完了,不知道后面一个->是什么意思,还有这个代码的算法好吗,今天看了好久,还没弄懂单向链表的排序,void BubbleSort(struct lnode *head)
{
struct lnode *f, *p, *x, *y;
f = NULL;
//判断是否只有一个元素或者没有元素
if(head -> next == NULL || head -> next -> next == NULL)
{
return;
}
while(f != head->next->next)
{
//外层是N - 1次循环,升序
for(p = head; p -> next -> next != f; p = p -> next)
{
if(p -> next -> data > p -> next -> next ->data)
{
x = p -> next;
y = p -> next -> next;
p -> next = y;
x -> next = y -> next;
y -> next = x;
}
}
f = p -> next;
}
}