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