# C#LeetCode刷题之#237-删除链表中的节点（Delete Node in a Linked List）

4 -> 5 -> 1 -> 9

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

4 -> 5 -> 1 -> 9

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.

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:

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

```public class Program {

public static void Main(string[] args) {
var head = new ListNode(1) {
next = new ListNode(2) {
next = new ListNode(3) {
next = new ListNode(4) {
next = new ListNode(5)
}
}
}
};

}

private static void ShowArray(ListNode list) {
var node = list;
while(node != null) {
Console.Write(\$"{node.val} ");
node = node.next;
}
Console.WriteLine();
}

private static void DeleteNode(ListNode node) {
//先复制下一个节点的值
node.val = node.next.val;
//再把下一节点的指针指向下下一个节点
node.next = node.next.next;
}

public class ListNode {
public int val;
public ListNode next;
public ListNode(int x) { val = x; }
}

}```

`1 2 4 5`