获取单个非循环链表中指针后面节点的值

get value of node behind the pointer in a singly non circular linkedlist

本文关键字:节点 指针 单个非 循环链表 获取      更新时间:2023-10-16

问题:Linkedlist=a、b、c、d、e=节点1、节点2、节点3、节点4、节点5

我在第5个节点上,想得到第2个节点的值(值=b(。我遍历并没有保存第二个节点的值。现在我在第五节点。无法返回或重新开始。

我有什么办法?


它是一个c++singly non-circular linked list,其中I不能返回或在圆形方向上移动,节点1,2,3,4,5

如果我在节点5上,我可以将第二个节点作为尾部(我以前在尾部=5(吗?(<-我能在5号的时候不后退或前进吗?我只想通过任何方式得到第二个节点的值。我在想,我可以把第五名放在第二名之后,或者把第二名放在第一名之后。然后向前走一步。(因为我可以前进,但不能后退(。然后得到第二个节点的值。

如果我知道有5个元素。我不能把b元素做成尾巴吗。此时,我将在第四个e(它将不再是尾部(,然后我可以前进到第五个元素b(直到我使第二个元素变成第五个元件时才出现(

这通常是不可能的,因为单链接的非圆形列表,根据定义,没有返回指针。查找第二个元素的唯一可靠方法是从第一个元素开始。

坏消息是你什么都做不了。游戏结束了。这就像在国际象棋中问,当你已经被将死时,最好的招式是什么。

好消息是,无论你做什么编程任务(好吧,只要它可以通过图灵机器解决(,都有一种方法可以对它进行编码,以防止你得到这样的位置。

记住第二个元素,或者记住根,然后你就可以访问它。有些算法会记住最近的(以前的(元素,例如,这就是你从单个链表中删除节点的方法。