首页 > 其他分享 >剑指Offer 18. 删除链表的节点

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

时间:2023-08-26 16:56:54浏览次数:40  
标签:ListNode 删除 Offer 18 Next 链表 节点

题目链接: 剑指Offer 18. 删除链表的节点

题目描述:

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

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

解法思路:

由于包含删除第一个节点的情况,因此采用虚拟头节点,
当遍历时找到待删除节点的前驱节点时,删除节点即可

代码:

/**
 * Definition for singly-linked list.
 * type ListNode struct {
 *     Val int
 *     Next *ListNode
 * }
 */
func deleteNode(head *ListNode, val int) *ListNode {

    if head == nil {
        return nil
    }
    dummy:= &ListNode{Next:head}
    p := dummy
    for p.Next != nil {
        if p.Next.Val == val{
            p.Next = p.Next.Next
            break
        }
        p = p.Next
    }
    return dummy.Next
}

标签:ListNode,删除,Offer,18,Next,链表,节点
From: https://www.cnblogs.com/lxing-go/p/17659077.html

相关文章

  • P1848 Bookshelf G 题解
    这是本蒟蒻写的第一篇题解(写不好请指出)很明显他是一道dp题,因为第i本书放哪里只跟前i-1本树的放法有关系。我们可以是定义f[i][j]表示放了i本书,最后一层书架是以第j本书开始的。那么有动态转移方程:\(f[i][i]=min(f[i-1][j])+hi,w[j]+...+w[i-1]<=L\)\(f[i][j]=f[i-1][j]+max(0......
  • 剑指Offer 17. 打印从1到最大的n位数
    题目链接:剑指Offer17.打印从1到最大的n位数题目描述:输入数字n,按顺序打印出从1到最大的n位十进制数。比如输入3,则打印出1、2、3一直到最大的3位数999。解法思路:利用上题中的代码,快速计算出10^n的值,然后依次将结果加到ans代码:funcprintNumbers(nint)[]int{......
  • CF1858D Trees and Segments
    一道考查预处理技巧的dp。观察式子\(a\timesL_0+L_1\),一个显然的想法是“定一求一”,即预处理求出对于每个\(L_1\)最大的\(L_0\),然后对于每个\(a\),枚举\(L_1\),统计最大的\(a\timesL_0+L_1\)。这样,我们将问题转化为了:已知\(L_1=len\),求出\(dp_{len}=L_{0max}\)。dp数......
  • 剑指Offer 15. 二进制中1的个数
    题目链接:剑指Offer15.二进制中1的个数题目描述:编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为'1'的个数(也被称为汉明重量).)。解法思路:思路一:num依次右移,判断每一次移动后最后一位是否是1,是的话,就ans++代码:func(numuint32)int{......
  • 剑指Offer 14- II. 剪绳子 II
    题目链接:剑指Offer14-II.剪绳子II题目描述:给你一根长度为n的绳子,请把绳子剪成整数长度的m段(m、n都是整数,n>1并且m>1),每段绳子的长度记为k[0],k[1]...k[m-1]。请问k[0]k[1]...*k[m-1]可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的......
  • windows 桌面GUI自动化- 18.pywinauto 保存控件菜单树结构print_control_identifiers(
    前言.pywinauto可以使用print_control_identifiers()方法打印控件菜单树结构,这对我们查找控件非常方便。print_control_identifiers()查看相关源码defprint_control_identifiers(self,depth=None,filename=None):"""Printsthe'identifiers'......
  • [刷题记录Day18]Leetcode二叉树
    No.1题目找树左下角的值思路队列,层序遍历Deque既可以用作栈也可以用作队列,谨慎使用代码publicintfindBottomLeftValue(TreeNoderoot){Queue<TreeNode>queue=newLinkedList<>();queue.add(root);intresult=0;//记录最后一行第一个元素......
  • 代码随想录第三天|203.移除列表元素;707.设计链表;206.反转链表
    今天最大的收获不是学会了几道题,而是突然改变了自己之前的想法,总想刷一遍就能把题弄回,这样在遇到难题时会拖延很长的时间,备受挫折,做一两道题就再也不想做了,刷题也就终止了应该做好刷三遍题的准备,第一遍,大量看题,看解题思路,在看题的过程中积累知识和解题技巧,不要迷恋在某一道题上,看......
  • 剑指 Offer 59 - I. 滑动窗口的最大值
    题不难,但理解思路很重要。做法是单调队列。如果求滑动窗口的最大值,那么必须在单调队列保持严格单调递减(只能小于,小于等于也不行),为啥不行还不是很清楚。并且,单调队列一定存储的是数组的索引!!否则无法确定滑动窗口的开始位置以及开始时的队列存储最大值的情况。classSolution{......
  • 剑指 Offer 48. 最长不含重复字符的子字符串(中等)
    题目:classSolution{//本题采用双指针滑动窗口的方法public:intlengthOfLongestSubstring(strings){map<char,int>m;//map里面存放的是**每个字符对应的下一个索引**intresult,l=0,r=0;while(r<s.size()){i......