c语言的数据结构关于力扣的基础题

img


反转链表的一个基础题,cur-next在没有头结点的情况下,到底是指向第一个结点,还是第二个结点

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 以下回答来自chatgpt:

    你好,对于没有头结点的情况下,cur-next指针应该指向第二个结点。因为在没有头结点的情况下,第一个结点就是整个链表的起始节点,我们需要对其进行反转操作,同时也需要将cur-next指针指向下一个节点,即第二个结点。以下是修改后的代码,可供参考:

    struct ListNode* reverseList(struct ListNode* head) {
        if(head == NULL || head->next == NULL) {
            return head;
        }
        struct ListNode *prev, *cur, *next;
        prev = NULL;
        cur = head;
        next = head->next;
        while(next != NULL) {
            cur->next = prev;
            prev = cur;
            cur = next;
            next = next->next;
        }
        cur->next = prev;
        return cur;
    }
    

    在这个代码里,cur就是第一个结点,next就是第二个结点。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

cur指向第一个,而cur->next指向第二个