作者:翟天保Steven
版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处

题目描述:

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

1.此题对比原题有改动

2.题目保证链表中节点的值互不相同

3.该题只会输出返回的链表和结果做对比,所以若使用 C 或 C++ 语言,你不需要 free 或 delete 被删除的节点

数据范围:

0<=链表节点值<=10000

0<=链表长度<=10000

示例:

输入:

{2,5,1,9},5

返回值:

{2,1,9}

说明:

给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 2 -> 1 -> 9   

解题思路:

本题考察数据结构链表的使用。首先判断下head是不是要删除的,如果头部被删,就返回头的next;之后遍历,cur是当前结点,pre是上一个结点,如果cur的值与val一致了,就用pre连接到cur的next结点即可,相当于越过了要删除的结点,实现删除。

测试代码:

/*** struct ListNode {*  int val;*   struct ListNode *next;* ListNode(int x) : val(x), next(nullptr) {}* };*/
class Solution {
public:/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可** * @param head ListNode类 * @param val int整型 * @return ListNode类*/ListNode* deleteNode(ListNode* head, int val) {ListNode* cur=head;ListNode* pre=head;// 判断下第一个是不是if(head->val==val)return head->next;cur=cur->next;// 如果找到要删除的结点,就将pre连接到cur的下一个即可,起到了删除作用while(cur){if(cur->val==val){pre->next=cur->next;return head;}cur=cur->next;pre=pre->next;}return head;}
};

剑指offer(C++)-JZ18:删除链表的节点(数据结构-链表)相关推荐

  1. 《剑指offer》第二章小结(1)——链表的基本操作

    <剑指offer>第二章小结(1)--链表的基本操作 面试题5是从尾到头打印链表,与此相关的链表的基本操作应该知道. 下面代码中列举了单链表的创建.遍历.插入和删除四种操作.参考网址: h ...

  2. 剑指Offer - 九度1511 - 从尾到头打印链表

    剑指Offer - 九度1511 - 从尾到头打印链表2013-11-29 21:08 题目描述: 输入一个链表,从尾到头打印链表每个节点的值. 输入: 每个输入文件仅包含一组测试样例. 每一组测试案 ...

  3. 剑指offer java版 test3—从尾到头打印链表

    标题:剑指offer java版 test3-从尾到头打印链表 题目:输入一个链表,按链表从尾到头的顺序返回一个ArrayList. 解答:知识不够全面,用ArrayList做的 但是看到大佬们还可以 ...

  4. 剑指offer面试题[5]-从尾到头打印链表

    目描述 输入一个链表,从尾到头打印链表每个节点的值. /** *  struct ListNode { *        int val; *        struct ListNode *next ...

  5. 剑指offer(C++)-JZ6:从尾到头打印链表(数据结构-链表)

    作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 题目描述: 输入一个链表的头节点,按链表从尾到头的顺序返回每个节点的值(用数组返回). 如输入{ ...

  6. 剑指offer 附加1. 删除链表中的重复结点

    1.问题描述 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针. 例如,链表1->2->3->3->4->4->5 处 ...

  7. 剑指offer 66题 -- 删除链表中重复的节点

    /* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { } }; */ ...

  8. [剑指offer][JAVA]面试题第[24]题[反转链表][递归][双指针][头插法]

    [问题描述][中等] 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点.示例:输入: 1->2->3->4->5->NULL 输出: 5->4 ...

  9. 剑指Offer - 面试题6. 从尾到头打印链表(栈,递归,反转链表)

    文章目录 1. 题目 2. 解题 2.1 stack解题 2.2 递归 2.3 反转链表 1. 题目 输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回). 示例 1: 输入:head ...

最新文章

  1. python数据分析年薪百万_如何成为一个年薪 50 万以上的数据分析师?
  2. 空指针:从 0 到 NULL,再到 nullptr
  3. 第18章 Linux集群架构
  4. java中while空循环_java – 实现空while循环以保持控制的更好方法
  5. 如何使用 Mac 的通知中心?
  6. 阿里巴巴JAVA开发手册最新版pdf
  7. 设计模式之简单工厂模式和抽象工厂模式
  8. Mosquitto源码学习
  9. CSS Sprite(CSS雪碧图)
  10. 修改输入框placeholder文字样式(颜色、字号等)
  11. Lefse本地运行并更换颜色
  12. 数模混合计算机应用,数模混合集成电路的发展现状和前景
  13. Unity通用计时器
  14. rstudio查询命令_R语言和RStudio的一些用法,常用命令等
  15. 伺服驱动器的工作原理及伺服驱动器的常见接线方法
  16. 强化学习系列(一):强化学习简介
  17. 如何成为一名优秀的网络工程师?
  18. Android 热补丁技术——资源的热修复
  19. C++ 20 新特性简介
  20. 条件变量pthread_cond_t怎么用

热门文章

  1. Hadoop 调研笔记
  2. Linux下的PDF阅读器Foxit
  3. 如何实现在已有代码之后添加逻辑之继承,组合(静态代理)实现方法
  4. HTML 5中的tips两则
  5. 1208. 尽可能使字符串相等
  6. find 排除_排列五248期定位预测,大师排除两头两尾
  7. 第103篇Python:Python爬虫系列之书籍爬取,细节拉满
  8. linux7解绑bond命令,linux多网卡的7种bond模式原理配置
  9. python拦截修改数据包_拦截指定数据、修改JS -- mitmproxy
  10. tomcat应用服务器有哪些,2014年最流行的应用服务器排行榜 Tomcat第一