zoukankan      html  css  js  c++  java
  • [剑指 Offer 18. 删除链表的节点]

    [剑指 Offer 18. 删除链表的节点]

    给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。

    返回删除后的链表的头节点。

    注意:此题对比原题有改动

    示例 1:

    输入: head = [4,5,1,9], val = 5
    输出: [4,1,9]
    解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9.

    示例 2:

    输入: head = [4,5,1,9], val = 1
    输出: [4,5,9]
    解释: 给定你链表中值为 1 的第三个节点,那么在调用了你的函数之后,该链表应变为 4 -> 5 -> 9.

    方法1:额外使用vector对数值进行存储,然后遍历重新生成链表

    /**
     * Definition for singly-linked list.
     * struct ListNode {
     *     int val;
     *     ListNode *next;
     *     ListNode(int x) : val(x), next(NULL) {}
     * };
     */
    class Solution {
    public:
        ListNode* deleteNode(ListNode* head, int val) {
            ListNode *temp;
            vector<int>vec;
            while(head != nullptr) {
                if (head->val != val) {
                    vec.push_back(head->val);
                }
                head = head->next;
            }
            ListNode *res = new ListNode(-1);
            ListNode *end = res;
            for (int i = 0; i<vec.size(); i++) {
                res->next = new ListNode(vec[i]);
                res = res->next;
            }
            return end->next;
        }
    };
    
  • 相关阅读:
    js计时功能
    sql缓存与WebSocket结合
    安装iis8
    WebSocket 聊天室加自制服务器
    简易web服务器
    UserControl 用户定义组件
    web.config中configSections section节 -Z
    SQL函数返回表的示例-Z
    sql with as 用法-Z
    计算机组成原理-第3章-3.1
  • 原文地址:https://www.cnblogs.com/wangdongfang/p/13817247.html
Copyright © 2011-2022 走看看