Leetcode:移除链表元素

题目描述:

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

解题思路:

使用指针遍历链表全部节点,判断当前节点的下一个节点的值与目标值Target相等时,使当前节点指向下一节点的下一节点。为了方便,我们创建一个空的头节点,使其next指针始终指向链表的头节点。在返回链表指针时,直接返回空节点的next指针。

代码实现:

  if(head==nullptr)
    {
        return head;
    }
    struct  ListNode* Node=new ListNode (0,head);
    struct  ListNode* tmp=Node;
    //Node->next = head;
    while(tmp->next != nullptr)
    {
         if(tmp->next->val == val)
        {
            tmp->next = tmp->next->next;
        }else{
              tmp=tmp->next;
        }
    }
    return Node->next;
    }
posted @ 2023-02-18 21:37  kknothing  阅读(13)  评论(0)    收藏  举报