反转链表

122 阅读1分钟

输入: 1->2->3->4->5->NULL

输出: 5->4->3->2->1->NULL

ListRev.jpg

PHP代码:

func revList($cur) {
    $temp = null;
    $ret = null;
    
    while ($cur != null) {
        $temp = $cur->next; // 把后续节点存入到temp,防止链表断开
        $cur->next = $ret;  // 改变当前节点的指向,结合图看
        $ret = $cur;        // 和上面一步 共同完成了  ret和cur后移
        $cur = $temp;       // cur指向临时保存的后续节点,准备开始下次循环
    }
    
    return $ret;  // 当 cur 指向 null 时,反转结束
}