203.移除链表元素
给你一个链表的头节点 head
和一个整数 val
,请你删除链表中所有满足 Node.val == val
的节点,并返回 新的头节点 。
示例 1:
输入:head = [1,2,6,3,4,5,6], val = 6 输出:[1,2,3,4,5]
示例 2:
输入:head = [], val = 1 输出:[]
示例 3:
输入:head = [7,7,7,7], val = 7 输出:[]
提示:
- 列表中的节点数目在范围
[0, 104]
内 1 <= Node.val <= 50
0 <= val <= 50
class Solution {
public:
ListNode* removeElements(ListNode* head, int val) {
//如果头节点存在且值为目标值
while(head && head->val == val) head = head->next;
auto p = head;
while(p){
//如果当前节点的下一个节点存在
while(p->next && p->next->val == val) p->next = p->next->next;
p = p->next;
}
return head;
}
};
目标值在链表开头需特判,搞清楚逻辑关系
707. 设计链表
有点多 回去看一下 基础不太牢固 重温了一下翁恺的C++视频
https://www.bilibili.com/video/BV1dE41167hJ?p=9&vd_source=7b38658adcfed42fe1f83c49f215e826文章来源:https://www.toymoban.com/news/detail-472236.html
206. 反转链表
之前做过几遍,每次做都卡壳QAQ文章来源地址https://www.toymoban.com/news/detail-472236.html
class Solution {
public:
ListNode* reverseList(ListNode* head) {
while(!head) return NULL;
auto a = head, b = head->next;
while(b){
auto c = b->next;
b->next = a;
a = b;
b = c;
}
head->next = NULL;
return a ;
}
};
到了这里,关于Day 3 打卡第三天的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!