我从一本书的链接列表中遇到了一个问题,但我无法理解它想说什么?
是不是:1. finding middle element but looking from starting
。这些行是什么意思:
n is c????
LinkedListNode next = n.next; // next= d;
6 n.data = next.data; // n.data=d;
7 n.next = next.next; // c.next= e ???
我无法得到它,你能看看并告诉我吗?
实现一个算法来删除单个链表中间的一个节点,只允许访问该节点。
示例:
输入:链表 a->b->c->d->e 中的节点 'c'
结果:没有返回任何内容,但新的链表看起来像 a->b->d->e解决方案:
只需将下一个节点的数据复制到这个节点中,然后删除下一个节点即可。
注意:如果要删除的节点是链表中的最后一个节点,则无法解决此问题。没关系——你的面试官希望看到你指出这一点。在这种情况下,您可以考虑将其标记为 dummy。这是你应该与面试官讨论的问题。
1 public static boolean deleteNode(LinkedListNode n) {
2 if (n == null || n.next == null) {
3 return false; // Failure
4 }
5 LinkedListNode next = n.next;
6 n.data = next.data;
7 n.next = next.next;
8 return true;
9 }
在这里,可能是n
什么?你能解释一下第 5,6,7 行吗?n
另外,如果是最后一个元素,为什么它不起作用?
我是链表的新手。我正在阅读它的所有示例,但真的被困在这个例子上。