Remove Linked List Elements
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Remove Linked List Elements相关的知识,希望对你有一定的参考价值。
1、问题描述:
Remove all elements from a linked list of integers that have value val.
Example
Given: 1 --> 2 --> 6 --> 3 --> 4 --> 5 --> 6, val = 6
Return: 1 --> 2 --> 3 --> 4 --> 5
2、解决思路:
1)定义两个新节点,头结点赋值给p,头结点的下一个节点赋值给q;
2)当q非空时循环,判断q节点的数据元素是否等于val,
if (相等){p->next=q->next; delete q; q=p-next;}
else {p=p->next; q=q->next;}
3)判断头节点元素是否等于val,if(相等){p=head;head=head->next;delete p;}
4) return head;
3、代码描述:
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
ListNode* removeElements(ListNode* head, int val) {
if(!head)return NULL;
ListNode *p,*q;
p=head;
q=p->next;
while(q)
{
if(q->val==val)
{
p->next=q->next;
delete q;
q=p->next;
}
else
{
p=p->next;
q=q->next;
}
}
if(head->val==val)
{
p=head;
head=head->next;
delete p;
}
return head;
} };
以上是关于Remove Linked List Elements的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode28.Linked List— Remove Linked List Elements删除链表元素
[LeetCode] 203. Remove Linked List Elements_Easy tag: Linked LIst
203. Remove Linked List Elements [easy] (Python)