求:

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

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

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

示例 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.

说明:

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

若使用 C 或 C++ 语言,你不需要 free 或 delete 被删除的节点

解:

非常普通,直接遍历链表就可以了。因为题目中的元素是唯一的,且题目要求不需要进行free和delete操作,所以直接修改相应节点的指针即可。

/*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/

structListNode* deleteNode(structListNode* head, intval){

if(head == NULL) returnNULL;

if(head->val == val) returnhead->next;

structListNode* pre = head;

while((pre->next != NULL) && (pre->next->val != val)) pre = pre->next;

if(pre->next != NULL) pre->next = pre->next->next;

returnhead;

}

c语言用指针删除链表free,leetcode剑指 Offer 18(删除链表的节点)--C语言实现相关推荐

  1. 【LeetCode】剑指 Offer 18. 删除链表的节点

    [LeetCode]剑指 Offer 18. 删除链表的节点 文章目录 [LeetCode]剑指 Offer 18. 删除链表的节点 一.双指针 一.双指针 本题删除值为 val 的结点需分为两步: ...

  2. 【算法】剑指 Offer 18. 删除链表的节点

    1.概述 剑指 Offer 18. 删除链表的节点 给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点. 返回删除后的链表的头节点. 注意:此题对比原题有改动 示例 1: 输入: he ...

  3. 【剑指 Offe】剑指 Offer 18. 删除链表的节点

    目录标题 算法汇总 题目 关键点 代码 1.解体方法 思路 代码 时间和空间复杂度 2.解题方法,如暴力法 思路 代码 时间和空间复杂度 算法汇总 以下是所有算法汇总,包括GitHub源码地址链接:力 ...

  4. 【0ms优化】剑指 Offer 18. 删除链表的节点

    立志用最少的代码做最高效的表达 给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点. 返回删除后的链表的头节点. 注意:此题对比原题有改动 示例 1: 输入: head = [4,5, ...

  5. leetcode 剑指 Offer 35. 复杂链表的复制

    题意 将一个链表复制一遍后输出,这个链表除了next指针外,还有一个random指针,随机指向链表中的节点(包括自身或者NULL). 解法 生成一个新的链表,然后根据新老链表同时循环遍历,找到当前老链 ...

  6. 【LeetCode 剑指 Offer 35. 复杂链表的复制(中等)】

    题目: 请实现 copyRandomList 函数,复制一个复杂链表.在复杂链表中,每个节点除了有一个 next 指针指向下一个节点,还有一个 random 指针指向链表中的任意节点或者 null. ...

  7. Leetcode 剑指 Offer 24. 反转链表 (每日一题 20210823)

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

  8. 【LeetCode】剑指 Offer 24. 反转链表

    剑指 Offer 24. 反转链表 文章目录 剑指 Offer 24. 反转链表 一.迭代 二.递归 总结 一.迭代 在遍历链表时,将当前节点的 next 指针改为指向前一个结点.由于结点没有引用其前 ...

  9. LeetCode-剑指 Offer 18. 删除链表的节点

    剑指 Offer 18. 删除链表的节点 思路:用一个头节点,以及pre,cur双指针 /*** Definition for singly-linked list.* struct ListNode ...

最新文章

  1. python3 sha 系列 hex 加密 以sha256为例
  2. wcf系列5天速成——第一天 binding的使用(1)
  3. #include 和#include“”的区别
  4. 《穿越计算机的迷雾》读书笔记二
  5. Mathematica初学者第一讲
  6. Android 告急!
  7. Android深度探索读后感第二章
  8. 14种东西帮你治疗口腔溃疡 - 生活至上,美容至尚!
  9. 【page-monitor 前端自动化 上篇】初步调研
  10. jquery Deferred
  11. c语言sin函数近似值,用泰勒公式求sin(x)的近似值
  12. 系统集成项目管理工程师教程第二版
  13. Android笔记 ANR Application Not Response
  14. 阿里巴巴集团CTO王坚:云计算让理想平等
  15. IPTV机顶盒刷机过程--山东电信【天邑TY608】
  16. Fiddler弱网测试
  17. pscc2019滤镜抽出_Photoshop(ps)cc2019 已经发现你啦!
  18. mysql交叉编译 cmake_cmake交叉编译参数toolchain
  19. Android Home键拦截
  20. Aruba AC如何通过CLI备份及导入导出

热门文章

  1. 题解P3951【小凯的疑惑】
  2. 一些关于并行计算的科研思路
  3. WebRTC 学习之 WebRTC 简介
  4. Best Coder Lotus and Characters
  5. Error:Protocol family unavailable
  6. SelectedNode与e.node的区别
  7. 关于对玩过的游戏的想法汇总
  8. Nobot控件------拒绝机器人行为
  9. python迭代器_使用Python的迭代器遍历可迭代对象
  10. Python数据分析与处理扩展库pandas常用选项设置