Easy-题目5:237. Delete Node in a Linked List

原创 2016年05月30日 19:46:05

题目原文:
Write a function to delete a node (except the tail) in a singly linked list, given only access to that node.
Supposed the linked list is 1 -> 2 -> 3 -> 4 and you are given the third node with value 3, the linked list should become 1 -> 2 -> 4 after calling your function.
题目大意:
删除单链表中指定节点。
题目分析:
把指定节点的值改成后面的值,并令其后继节点指向原后继节点的后继节点。
源码:(language:c)

void deleteNode(struct ListNode* node) {
    if(node) {
        node->val=node->next->val;
        node->next=node->next->next;
    }
}

成绩:
4ms,beats 0.52% 众数4ms,99.48%
Cmershen的碎碎念:
在数据结构课上,我们删除链表节点的方法是令其前驱节点指向后继节点。可是本题中只有当前节点,又是单链表,无法获得其前驱节点。这个问题困扰了我一段时间,但我发现还有value值可以利用,因此得出上述算法。
其实测试用例不完全,根据源码,Node->next是有可能为空的,再引用val和next有可能引发NPD异常。因此上述的ac代码不可以用于删除链表中最后一个节点。(dts大法好!!!(^__^) 嘻嘻……)

版权声明:完整版Leetcode题解请出门左转https://github.com/cmershen1/leetcode/tree/master/docs

相关文章推荐

leetCode 237. Delete Node in a Linked List

题目链接:https://leetcode.com/problems/delete-node-in-a-linked-list/     题目内容: Write a function to del...

【一天一道LeetCode】#237. Delete Node in a Linked List

一天一道LeetCode 本系列文章已全部上传至我的github,地址:ZeeCoder‘s Github 欢迎大家关注我的新浪微博,我的新浪微博 欢迎转载,转载请注明出处 (一)题目...

LeetCode之路:237. Delete Node in a Linked List

LeetCode之路:237. Delete Node in a Linked List 一、引言这道题 哈哈哈 这是我做完了之后看到最高票答案的标题,顿时觉得有些滑稽:)那么接下来就让我们看看这...

Delete Node in a Linked List(删除链表中的节点)

Write a function to delete a node (except the tail) in a singly linked list, given only access to th...

【LeetCode】 Delete Node in a Linked List

Delete Node in a Linked List  Total Accepted: 1872 Total Submissions: 3662 Write a...

开荒新系列之Leetcode: 003-Delete Node in a Linked List

开荒Leetcode: NO.003 Delete Node in a Linked List最近晚上决定睡得比较早,于是更新就慢下来了。DFS和BFS还有递归写法,速度更快一些,留坑待填。题目大意:...

Path Sum and Delete Node in a Linked List

今天照例更新数据结构基础,希望各位各取所需,我本人是习惯通过题目通过code来加深对数据结构以及某些算法的理解。现在首先我们还是来看看二叉树相关的题目: Path sum,leetcode上给出的演...

Delete Node in a Linked List

Write a function to delete a node (except the tail) in a singly linked list, given only access to th...

LeetCode---Delete Node in a Linked List

题目大意:给出一个链表中的节点,在链表中删除该节点,如果是尾节点则不删除。如:链表 1 -> 2 -> 3 -> 4 要删除链表中值为3的节点,则操作后的链表为1 -> 2 -> 4。 算法思想: ...

LeetCode------Delete Node in a Linked List

题目简介 Write a function to delete a node (except the tail) in a singly linked list, given onl...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)