链表:在不给出整个链表头结点的情况下,删除单链表中的某个节点
Posted 黑冰台
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了链表:在不给出整个链表头结点的情况下,删除单链表中的某个节点相关的知识,希望对你有一定的参考价值。
问题描述:
有一个包含int型节点值的单链表,给定一个链表中的节点node,但不给定整个链表的头结点,删除链表中的某个结点。
算法实现:
class Node {
public int value;
public Node next;
public Node(int value) {
this.value = value;
}
}
public void removeWiredNode(Node node) {
if(node == null) {
return;
}
Node next = node.next;
if(next == null){
throw new RuntimeException("can‘t remove last node");
}
node.value = next.value;
node.next = next.next;
}
算法分析:
1.严格来说,无法删除,因无法找到前驱结点;
2.探讨删除的可行性,及不是对问题进行严格限制的方法,并给出解法中包含的特殊情况;
3.对末尾节点作出不能删除对提示,对非末尾节点进行节点值的替换。
以上是关于链表:在不给出整个链表头结点的情况下,删除单链表中的某个节点的主要内容,如果未能解决你的问题,请参考以下文章