【链表】反转链表

定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。

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

参考文章:https://leetcode-cn.com/problems/fan-zhuan-lian-biao-lcof/solution/ru-guo-ni-kan-wan-ping-lun-he-ti-jie-huan-you-wen-/

图片描述

重点是: cur.next 只能有一个指向,指向了pre,就和2节点断开连接了,这点是最重要的。不然无法翻转。

   //申请节点,newHead和 cur,pre指向null
        ListNode newHead = null;
        ListNode cur = head;
        ListNode tmp = null;
        while(cur!=null) {
            //记录当前节点的下一个节点
            tmp = cur.next;
            //然后将当前节点指向newHead
            cur.next = newHead;
            //newHead和cur节点都前进一位
            newHead = cur;
            cur = tmp;
        }
        return newHead;

你可能感兴趣的:(【链表】反转链表)