删除链表结点

[题](删除链表的节点_牛客题霸_牛客网 (nowcoder.com))

  1. 代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    /**
    * struct ListNode {
    * int val;
    * struct ListNode *next;
    * ListNode(int x) : val(x), next(nullptr) {}
    * };
    */
    #include <cstddef>
    class Solution {
    public:
    /**
    * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
    *
    *
    * @param head ListNode类
    * @param val int整型
    * @return ListNode类
    */
    ListNode* deleteNode(ListNode* head, int val) {
    // write code here
    ListNode* dummy=new ListNode(-1);
    dummy->next=head;
    ListNode* moveNode=dummy;
    while(moveNode->next!=nullptr){
    if(moveNode->next->val==val)
    {
    moveNode->next=moveNode->next->next;
    break;
    }
    moveNode=moveNode->next;
    }
    return dummy->next;

    /* ListNode* moveNode = head;
    ListNode* pre=head;
    if(head->val==val){
    return head->next;
    }
    while (moveNode != nullptr) {
    if (moveNode->val == val) {
    pre->next=moveNode->next;
    moveNode = moveNode->next;
    break;
    }
    pre=moveNode;
    moveNode = moveNode->next;
    }
    return head;*/
    }
    };

    注释是自己的方法

  2. 提示

    • 对来链表操作,或者返回链表的使用虚拟头节点

删除链表结点
https://tsy244.github.io/2023/04/12/算法/newcoder/删除链表结点/
Author
August Rosenberg
Posted on
April 12, 2023
Licensed under