当前位置:网站首页>【LeetCode】203.移除链表元素
【LeetCode】203.移除链表元素
2022-07-31 10:03:00 【酥酥~】
题目
给你一个链表的头节点 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
题解
循环遍历
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr) {} * ListNode(int x, ListNode *next) : val(x), next(next) {} * }; */
class Solution {
public:
ListNode* removeElements(ListNode* head, int val) {
ListNode* result = new ListNode(0,head);
ListNode* temp = result;
while(temp->next != NULL)
{
if(temp->next->val == val)
temp->next = temp->next->next;
else
temp = temp->next;
}
return result->next;
}
};
使用递归
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr) {} * ListNode(int x, ListNode *next) : val(x), next(next) {} * }; */
class Solution {
public:
ListNode* removeElements(ListNode* head, int val) {
if(head == nullptr)
return nullptr;
head->next = removeElements(head->next,val);
return head->val != val ? head : head->next;
}
};
边栏推荐
猜你喜欢
随机推荐
Redis Cluster - Sentinel Mode Principle (Sentinel)
Web系统常见安全漏洞介绍及解决方案-CSRF攻击
【职场杂谈】售前工程师岗位的理解杂谈
梅科尔工作室--鸿蒙十四天开发培训笔记(八)
ARC在编译和运行做了什么?
前序、后序及层次遍历实现二叉树的序列化与反序列化
Gradle series - Groovy overview, basic use (based on Groovy document 4.0.4) day2-1
What is the encoding that starts with ?
GZIPInputStream 类源码分析
PyQt5快速开发与实战 9.4 Matplotlib在PyQt中的应用
如何在 TiDB Cloud 上使用 Databricks 进行数据分析 | TiDB Cloud 使用指南
VMware下安装win10
Canvas particles change various shapes js special effects
Web系统常见安全漏洞介绍及解决方案-XSS攻击
loadrunner脚本--添加集合点
浅谈Attention与Self-Attention,一起感受注意力之美
spark filter
尚医通【预约挂号系统】总结
来n遍剑指--09. 用两个栈实现队列
Mybaits 常用问题详解









