这里只贴了函数,该函数依赖于之前的博文 单链表及单链表的基本操作实现
//反转单链表
void ReversalList(SingleList* sl) {
assert(sl);
SingleListNode* cur = sl->_head;
SingleListNode* prev= NULL;
SingleListNode* next = cur->_next;
if (cur == NULL || cur->_next == NULL) {
return;
}
while (next) {
//当前节点的_next指向前一个结点prev
cur->_next = prev;
//更新prev
prev = cur;
//更新cur
cur = next;
//更新next
next = next->_next;
}
//最后一个结点指向更新
cur->_next = prev;
sl->_head = cur;
}