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 -> 4after calling your function.
翻译:
编写一个函数来删除单链表中的节点(尾部除外),只允许访问该节点。
假设链表是1 -> 2 -> 3 -> 4和你被赋予第三个节点的值3,链表应该1 -> 2 -> 4在调用你的函数后。
思路:
刚开始写链表的题,还不是很熟,上来就想循环,走了歧路。正解为判断链表下一节点是不是空,不为空就将当前节点的值等于下一节点的值,并将当前节点指向下下个节点。下一节点为空则当前节点为空。
public void deleteNode(ListNode node) {
if(node.next != null) {
node.val = node.next.val;
node.next = node.next.next;
}
node = null;
}
转载请注明原文地址: https://ju.6miu.com/read-675674.html