链表反转 学习笔记

161 阅读1分钟

链表反转

链表反转主要操作就是使用p和q两个指针配合工作,使得两个节点间的指向反向
如图所示:

代码如下:

- (void)reverse
{
    BBSingleLinkedNode *prev = nil;
    BBSingleLinkedNode *current = _headNode;
    BBSingleLinkedNode *next = nil;
    while (current) {
        next = current.next;
        current.next = prev;
        prev = current;
        current = next;
    }
    _headNode = prev;
}