leetcode203题目移除链表元素

涉及递归 比较清晰

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode() : val(0), next(nullptr) {}
 *     ListNode(int x) : val(x), next(nullptr) {}
 *     ListNode(int x, ListNode *next) : val(x), next(next) {}
 * };
 */
class Solution {
public:
    ListNode* removeElements(ListNode* head, int val) {
        ListNode* tmp = new ListNode(0);
        tmp->next = head;
        ListNode *s ;
        s = tmp;
        while(s->next !=nullptr)
        {
            if (s->next->val == val)
            {
                s->next = s->next->next;
            }
            else{
                s = s->next ;
            }
        }
        head = tmp->next;
        return head;

    }
};

你可能感兴趣的:(c++,数据结构,算法)