实现一个算法,删除单向链表中间的某个节点,假设你只能访问该节点。
示例:
输入:单向链表 a->b->c->d->e中的节点c
结果:不返回任何数据,但该链表变为:a->b->d->e
package test;
public class RemoveNode {
//因为只能访问当前节点,没有办法得到之前节点的引用,所以只能采用交换值得方法,
//把之后节点的值赋给当前节点,然后删除之后的节点
public void removeNode(Node node){
if(node == null)
return;
if(node.next != null){
node.val = node.next.val;
node.next = node.next.next;
}else{
node = null;
}
}
}