删除单链表当前的节点是不是一定要获得上一个节点?

public class Node<Item> {
    private Item item;
    private Node<Item> next;
}

现有ABCDE5个节点,分别指向下一个节点:A->B->C->D->E
比如我想删除C,就得做类似的操作:

B.next = B.next.next;
C.next = null;

所以想问:删除单链表当前的节点是不是一定要获得上一个节点?

阅读 4.3k
2 个回答

不一定,有种比较猥琐的做法,经常面试题也会考,你可以这样搞就不用拿上一个节点:

D = C.next;
C.item = D.item;
C.next = D.next;
D.next = null;

如果不获取上一个节点,就不能建立节点之间新的关系,那么变成拆分链表了。
关键是建立节点之前的前后关系。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题