您当前的位置: 首页 > 

孑渡

暂无认证

  • 4浏览

    0关注

    178博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

每日一题:2021/6/5

孑渡 发布时间:2021-06-05 09:34:13 ,浏览量:4

- 移除链表元素

给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。

/**
 * 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) {
        if(!head)
            return nullptr;
        while(head){
            if(head->val == val)
                head = head->next;
            else{
                break;
            }
        }
        if(!head)
            return nullptr;
        
        ListNode* root = head->next;
        ListNode* parent = head;
        ListNode* result = head;
        while(root){
            if(root->val == val){
                parent->next = root->next;
                root = root->next;
            }else{
                parent = parent->next;
                root = root->next;
            }
        }
        return result;
    }
};

经验: 水题,迭代递归均可。

关注
打赏
1663211900
查看更多评论
立即登录/注册

微信扫码登录

0.3531s