Remove Linked List Elements
来源:互联网 发布:上海网站建设优化 编辑:程序博客网 时间:2024/04/30 20:20
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
Credits:
Special thanks to @mithmatt for adding this problem and creating all test cases.
题意:删除链表中值等于val的节点;
注意问题:表头需要特殊处理:
1.如果一开始链表就是空的就需要返回空
2.如果表头剔除符合条件的节点之后,链表变为空,则返回一个NULL
其他后面的就按照正常的一个个删除就好了,但是实现的代码没有对内存进行释放,但是题目不要求就没有做了。
#include<cstdio>#include<cstring>#include<string>#include<cstdlib>#include<map>#include<iostream>using namespace std;//Definition for singly-linked list.struct ListNode { int val;ListNode *next;}; class Solution {public: ListNode* removeElements(ListNode* head, int val) { if(head == NULL) { return head; }while(head->val == val){if(head->next == NULL){return NULL;}elsehead = head->next;}ListNode* node = head;while(node->next!=NULL){if(node->next->val == val){node->next = node->next->next;}else{node = node->next;}}return head; }};ListNode* create_List(){ListNode* node1 = new ListNode;ListNode* node2 = new ListNode;ListNode* node3 = new ListNode;ListNode* node4 = new ListNode;ListNode* node5 = new ListNode;node1->val = 1;node1->next = node2;node2->val = 2;node2->next = node3;node3->val = 1;node3->next=node4;node4->val = 3;node4->next = node5;node5->val = 1;node5->next = NULL;return node1;}int main(){ListNode* node = new ListNode;ListNode* head = new ListNode;//head = create_List();head->val = 1;head->next = NULL;node = head;while(node){cout << node->val <<" ";node = node->next; }cout<<endl;Solution s;head = s.removeElements(head,1);node = head;while(node){cout << node->val <<" ";node = node->next; }cout << endl;return 0;}
0 0
- Remove Linked List Elements
- Remove Linked List Elements
- Remove Linked List Elements
- Remove Linked List Elements
- Remove Linked List Elements
- Remove Linked List Elements
- Remove Linked List Elements
- Remove Linked List Elements
- Remove Linked List Elements
- Remove Linked List Elements
- Remove Linked List Elements
- Remove Linked List Elements
- Remove Linked List Elements
- Remove Linked List Elements
- Remove Linked List Elements
- Remove Linked List Elements
- Remove Linked List Elements
- Remove Linked List Elements
- Spark RDD操作
- 28杠怎样控牌▅ω【在线演示QQ:194714506】
- Unity3d_协程和Invoke
- 28杠控牌绝技ㄨ█【在线演示QQ:194714506】
- 虚拟互换(virtual swap)
- Remove Linked List Elements
- hdu5194DZY Loves Balls 期望
- HDU ACM 1079 Calendar Game 博弈找规律
- 28杠能控牌吗▅》【在线演示QQ:194714506】
- 环境变量中path和classpath的作用
- 大吃小控牌ζ╬【在线演示QQ:194714506】
- SHELLING
- php面向对象(OOP)—__toString()和__clone()
- unrecognized selector sent to instance 遇到的问题