【leetcode】【单链表】【203】Remove Linked List Elements

来源:互联网 发布:中国经济知乎 编辑:程序博客网 时间:2024/05/09 23:08
#include<iostream>using namespace std;struct ListNode {int val;ListNode *next;ListNode(int x) : val(x), next(NULL) {}};class Solution {public:ListNode* removeElements(ListNode* head, int val) {ListNode* prev = head;ListNode* cur = head;while (cur){if (cur->val == val){ListNode* temp = cur;head = prev = cur = cur->next;delete temp;}else{cur = cur->next;break;}}//找出第一个值不等于val的节点 while (cur){if (cur->val == val){prev->next = cur->next;ListNode* temp = cur;cur = cur->next;delete temp;}else{prev = prev->next;cur = cur->next;}}return head;}ListNode* createList(ListNode* head){int numOfNode;int value;cout << "please input number of listNode:";cin >> numOfNode;cin >> value;head = new ListNode(value);ListNode* cur = head;for (int i = 1; i < numOfNode; ++i){cin >> value;ListNode* temp = new ListNode(value);cur->next = temp;cur = temp;}return head;}void printNode(ListNode* head){ListNode* cur = head;while (cur){cout << cur->val << " ";cur = cur->next;}cout << endl;}};int main(){ListNode* head = NULL;Solution solution;head = solution.createList(head);solution.printNode(head);head = solution.removeElements(head, 6);solution.printNode(head);system("pause");return 0;}

0 0
原创粉丝点击