59.螺旋矩阵II
待做
203.移除链表元素
链表比较熟悉了,这里仅当复习
ListNode* removeElements(ListNode* head, int val) {
if(head == nullptr)
return head;
ListNode* dummyHead = new ListNode(0); // 设置一个虚拟头结点
dummyHead->next = head; // 将虚拟头结点指向head,这样方面后面做删除操作
ListNode* cur = dummyHead;
while (cur->next != NULL) {
if(cur->next->val == val) {
ListNode* tmp = cur->next;
cur->next = cur->next->next;
delete tmp;
tmp =nullptr
} else {
cur = cur->next;
}
}
head = dummyHead->next;
delete dummyHead;
dummyHead = nullptr;
return head;
}
707.设计链表
206.反转链表
这里应用到三个节点,即前->中->后,遍历中节点即可,后节点可由中节点得到
将中节点指向前节点之前,先记录后节点,以防指向调节后找不到下一个节点
ListNode* reverseList(ListNode* head) {
if(head == nullptr)
return head;
ListNode* pre = head;
ListNode* cur = head->next;
head->next =nullptr;
while(cur != nullptr)
{
ListNode* node = cur->next;
cur->next = pre;
pre = cur;
cur = node;
}
return pre;
}