反转链表

给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。

想法一:将需要反转的链表建立一个空头,再逐一进行反转:

复制代码
class Solution {
public:
    ListNode* reverseList(ListNode* head) {
        ListNode* slow = NULL;
        ListNode* fast = head;
        while (fast != NULL) {
            ListNode* next = fast->next;
            fast->next = slow;
            slow = fast;
            fast = next;
        }
        return slow;
    }
};
复制代码

想法二:若是不建立空头:这种方法不可行的,因为执行第一部的第二个节点的next指针指向第一个节点的时候,第一个节点的next指针还是指向第二个节点,所以第一个节点的next还是要指向空的,还是回到第一种方法。

posted @ 2022-09-13 20:18  铜锣湾陈昊男  阅读(3)  评论(0)    收藏  举报
点击右上角即可分享
微信分享提示