# 问题描述

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.

# 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.        """        if node is not None:            node.val = node.next.val            node.next = node.next.next`

# Java

`public class Solution {    public void deleteNode(ListNode node) {        if (node != null) {            node.val = node.next.val;            node.next = node.next.next;        }    }}`

# golang

`//type ListNode struct {//  Val  int//  Next *ListNode//}​func deleteNode(node *ListNode) {    if node != nil {        node.Val = node.Next.Val        node.Next = node.Next.Next    }}`