leetcode_203题——Remove Linked List Elements(链表)
2015-05-07 20:07
423 查看
Remove Linked List Elements
Total Accepted: 8053 Total Submissions: 29898My SubmissionsQuestion Solution
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.
Hide Tags
Linked List
Have you met this question in a real interview?
Yes
No
Discuss
这道题的意思是,去掉链表中的,那些与给定的val值相同的点,即去除掉链表中的结点,这样会有可能要去掉三种(头结点,中间结点,尾结点)
所以我在第一个while循环时只考虑头结点的问题,再之后三个指针ptr1,ptr2指向当前的前后,ptr指向当前结点。
#include<iostream> using namespace std; //Definition for singly-linked list. struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {} }; ListNode* removeElements(ListNode* head, int val) { ListNode* ptr0=head; ListNode* ptr=head; ListNode* ptr1=head; ListNode* ptr2=head; if(head==NULL) return head; while(1) { if(ptr0->val!=val) { if(ptr0->next==NULL) return ptr0; ptr1=ptr0; ptr=ptr0->next; break; } else { ptr=ptr0->next; free(ptr0); if(ptr==NULL) return ptr; else ptr0=ptr; } } ptr1=ptr0; ptr=ptr0->next; while(1) { if(ptr->next==NULL) { if(ptr->val==val) { ptr1->next=NULL; free(ptr); return ptr0; } else return ptr0; } else { ptr2=ptr->next; if(ptr->val==val) { ptr1->next=ptr2; free(ptr); ptr=ptr2; ptr2=ptr->next; } else { ptr1=ptr1->next; ptr=ptr->next; ptr2=ptr2->next; } } } return ptr0; } int main() { }
相关文章推荐
- Leetcode 203 Remove Linked List Elements 链表
- LeetCode 203 Remove Linked List Elements(移除链表元素)(*)
- 【leetcode】【单链表】【203】Remove Linked List Elements
- 【leetcode】【单链表】【203】Remove Linked List Elements
- LeetCode 203 Remove Linked List Elements(链表操作)
- Leetcode:203 Remove Linked List Elements(删除链表中的某个元素))
- [LeetCode-203] Remove Linked List Elements(链表节点删除)
- leetcode_c++:链表:Remove Linked List Elements(203)
- 203.[LeetCode]Remove Linked List Elements
- leetcode 203:Remove Linked List Elements
- Java [Leetcode 203]Remove Linked List Elements
- leetcode 203 Remove Linked List Elements C++
- 小白笔记---------------------------leetcode(203. Remove Linked List Elements )
- LeetCode 203 Remove Linked List Elements
- [Leetcode]#203 Remove Linked List Elements
- 203. Remove Linked List Elements Leetcode Python
- Leetcode 203 Remove Linked List Elements
- leetcode-203-Remove Linked List Elements
- 203. Remove Linked List Elements(链表)
- Leetcode(203):Remove Linked List Elements