[LeetCode]

题目地址:https://leetcode.com/problems/delete-node-in-a-linked-list/

Total Accepted: 78258 Total Submissions: 179086 Difficulty: Easy

题目描述

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

Given linked list – head = [4,5,1,9], which looks like following:

4 -> 5 -> 1 -> 9

Example 1:

Input: head = [4,5,1,9], node = 5
Output: [4,1,9]
Explanation: You are given the second node with value 5, the linked list
should become 4 -> 1 -> 9 after calling your function.

Example 2:

Input: head = [4,5,1,9], node = 1
Output: [4,5,9]
Explanation: You are given the third node with value 1, the linked list
should become 4 -> 5 -> 9 after calling your function.

Note:

  1. The linked list will have at least two elements.
  2. All of the nodes’ values will be unique.
  3. The given node will not be the tail and it will always be a valid node of the linked list.
  4. Do not return anything from your function.

题目大意

给出了一个节点,这个节点是在一个单链表中的,并且这个节点不是最后一个节点。现在要我们删除这个节点。

解题方法

设置当前节点的值为下一个

拿到这个题时以为要从头找到这个节点前一个节点,然后删除当前节点。这个应该是正常思路。

但是,题目只给出了删除的这个节点,没有给出根节点。所以可以通过这个将当前的节点的数值改成下面的节点的值,然后删除下一个节点的方式。

链表基本操作,记待删除节点为node:

令node.val = node.next.val,node.next = node.next.next即可

Java代码如下:

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

python代码如下:

# Definition for singly-linked list.
# class ListNode(object):
# def __init__(self, x):
# self.val = x
# self.next = None class Solution(object):
def deleteNode(self, node):
"""
:type node: ListNode
:rtype: void Do not return anything, modify node in-place instead.
"""
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->val = node->next->val;
node->next = node->next->next;
}
};

日期

2016/4/30 0:39:40
2018 年 11 月 11 日 —— 剁手节快乐
2019 年 9 月 27 日 —— 昨天面快手,竟然是纯刷题

【LeetCode】237. Delete Node in a Linked List 解题报告 (Java&Python&C++)的更多相关文章

  1. LeetCode 237 Delete Node in a Linked List 解题报告

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

  2. [LeetCode] 237. 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 ...

  3. LeetCode 237. 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 ...

  4. [LeetCode] 237. 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 ...

  5. (easy)LeetCode 237.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 ...

  6. leetcode 237 Delete Node in a Linked List python

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

  7. 17.leetcode 237. 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 ...

  8. [Leetcode]237. Delete Node in a Linked List -David_Lin

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

  9. LeetCode 237. Delete Node in a Linked List 删除链表结点(只给定要删除的结点) C++/Java

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

随机推荐

  1. R语言与医学统计图形-【32】海盗图、词云图、日历图

    1.海盗图 参数众多,其语法与基础包类似. 基础图. #devtools::install_github('ndphillips/yarrr') #install.packages('yarrr') ...

  2. mysql_sql查性能语句

    mysql> SHOW PROCESSLIST; +----+--------+----------------------+-------+-------------+--------+--- ...

  3. 搭建简单的SpringCloud项目三:问题及解决

    GitHub:https://github.com/ownzyuan/test-cloud 前篇:搭建简单的SpringCloud项目一:注册中心和公共层 搭建简单的SpringCloud项目二:服务 ...

  4. 表格合并单元格【c#】

    gridBranchInfo.DataSource = dtBranchViewList; gridBranchInfo.DataBind(); Random random = new Random( ...

  5. Spark(一)【spark-3.0安装和入门】

    目录 一.Windows安装 1.安装 2.使用 二.Linux安装 Local模式 1.安装 2.使用 yarn模式 1.安装 2.使用 3.spark的历史服务器集成yarn 一.Windows安 ...

  6. 【STM32】使用SDIO进行SD卡读写,包含文件管理FatFs(终)-配合内存管理来遍历SD卡

    [STM32]使用SDIO进行SD卡读写,包含文件管理FatFs(一)-初步认识SD卡 [STM32]使用SDIO进行SD卡读写,包含文件管理FatFs(二)-了解SD总线,命令的相关介绍 [STM3 ...

  7. highchars操作集合

    一.tooltip 与鼠标指针的距离想调整tooltip和鼠标指针的距离,官方api 和中文api中都没写,只有轴 label.distance . 但我觉得应该有这个,看源码果然有 tooltip ...

  8. springmvc资源文件访问不到,undefined,jsp引用js文件目录

    资源访问失败: 该模块下springmvc.xml文件中添加配置: <mvc:resources mapping="/js/**" location="/js/&q ...

  9. 在vue3中使用router-link-active遇到的坑

    在使用 router-link-active 设置链接激活时CSS类名时,发现在例如 /member/order 和 /member/order/:id 这两个都包含 /member/order的路由 ...

  10. 微信浏览器打开H5页面右上角隐藏转发功能

    js设置转发开关 document.addEventListener('WeixinJSBridgeReady', function onBridgeReady() { WeixinJSBridge. ...