zoukankan      html  css  js  c++  java
  • 腾讯面试题!!!【手绘漫画】图解LeetCode之删除链表中的节点(LeetCode 237题)

    在这里插入图片描述

    图解LeetCode刷题计划

    1、写在前面

    手绘漫画系列正式上线!!!“图解LeetCode刷题计划” 来了!!!

    今天是第十二期,争取每天一期,最多两天一期,欢迎大家监督我。。。

    我就是个鸽子。。。
    在这里插入图片描述
    今天的这个题是腾讯面试出过的题,有点动脑筋的意思!
    在这里插入图片描述
    在这里插入图片描述

    2、题目

    首先看一下题目,
    在这里插入图片描述
    在这里插入图片描述
    可能上来你一看,题出错了???
    在这里插入图片描述
    别着急,认真看题!

    void deleteNode(ListNode* node)
    

    传入的是删除的节点,不是头结点,加上是单链表,没法找到前驱节点,常规方法无效。

    但是我们可以将下一个节点的值复制到当前节点,然后将下一个节点删除即可。

    好了,废话少说,开始了。
    在这里插入图片描述
    在这里插入图片描述

    3、正文

    好了,来一起看一下。

    链表是 4, 5, 1, 3,想除去的节点是 5,常规操作,先 get 然后 delete,这样就OK了。不过就像前面说过的一样,传入的是 node,所以这里用的方法是用要删除节点的下一个位置,去替代要删除的节点,这样就完美的解决了问题!
    在这里插入图片描述
    在这里插入图片描述

    4、代码

    两种写法,一种是常规的,一种是C++特有的!

    常规的:

    /**
     * Definition for singly-linked list.
     * struct ListNode {
     *     int val;
     *     ListNode *next;
     *     ListNode(int x) : val(x), next(NULL) {}
     * };
     */
    class Solution {
    public:
        void deleteNode(ListNode* node) {
            node->val=node->next->val;
            node->next=node->next->next;
        }
    };
    

    C++特有的:

    /**
     * Definition for singly-linked list.
     * struct ListNode {
     *     int val;
     *     ListNode *next;
     *     ListNode(int x) : val(x), next(NULL) {}
     * };
     */
    class Solution {
    public:
        void deleteNode(ListNode* node) {
            *(node)=*(node->next);
        }
    };
    

    在这里插入图片描述
    在这里插入图片描述

    如果有幸帮到你,请帮我点个【赞】,给个【关注】!如果能顺带【评论】给个鼓励,我将不胜感激。

    如果想要更多的资源,欢迎关注 @我是管小亮,文字强迫症MAX~

  • 相关阅读:
    day12_字符连接单引号转意字符
    day12_存储过程说明
    day12_PLSQL编程--存储过程---统一发布动态属性管理
    linux关闭celinux服务
    day11__表管理
    day11_分区表------子分区的母模板(11g)
    day11_分区表------子分区的母模板(10g)
    day11_分区表——分区表常用维护
    smartforms 中的currquan单位处理
    当SVN服务器端IP地址发生变化时,客户端重新定位
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13302564.html
Copyright © 2011-2022 走看看