Leetcode 203. Remove Linked List Elements | | Leetcode 203. Remove Linked List Elements 文章作者:Tyan博客:noahsnail.com | CSDN | 简书 1. Description 2. Solution Version 1 123456789101112131415161718192021222324252627282930/** * 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 nullptr; } ListNode* start = new ListNode(0); start->next = head; ListNode* pre = start; ListNode* current = head; while(current) { if(current->val == val) { pre->next = current->next; } else { pre = pre->next; } current = current->next; } return start->next; }}; Version 2 123456789101112131415161718192021/** * 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 nullptr; } head->next = removeElements(head->next, val); if(head->val == val) { return head->next; } return head; }}; Reference https://leetcode.com/problems/remove-linked-list-elements/description/ 如果有收获,可以请我喝杯咖啡! 赏 微信打赏 支付宝打赏