Question
删除单链表中的节点
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.
链表的定义
// Definition for singly-linked list.
public class ListNode {
int val; // 节点的值
ListNode next; // 节点的指针
ListNode(int x) { val = x; }
}
Solutions
这里要注意不仅要替换链表的指针,值也要换,一开始就只换了指针忘记换值了。
public class Solution {
public void deleteNode(ListNode node) {
node.val = node.next.val;
node.next = node.next.next;
}
}
Points
- 是否对节点为null时进行处理
不太懂为何node.next = node.next.next;
这里不判断下
TO DO
- 链表的基础概念