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