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;
}

在這裏插入圖片描述

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