leetcode -- 237、206

237.删除链表中的节点

题目描述

在这里插入图片描述
在这里插入图片描述

解题方法

要看懂题目。

void deleteNode(struct ListNode* node) 
{
    node->val = node->next->val;
    node->next = node->next->next;   
}

应该是0ms
在这里插入图片描述

206.反转链表

题目描述

反转一个单链表。

示例:

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

解题方法

三指针反转链表

struct ListNode* reverseList(struct ListNode* head)
{
    if (head == NULL || head->next == NULL)     // 0或1个元素
        return head;                            // 直接返回
    struct ListNode *p = head, *q = head->next, *r = q->next;   
    p->next = NULL;
    while (r != NULL)
    {
        q->next = p;        // 指针反转
        p = q;
        q = r;
        r = r->next;
    }
    q->next = p;
    return q;
}

在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章