【问题标题】:Linked Lists Challenge with Pointer Next带指针的链表挑战 Next
【发布时间】:2014-09-05 18:09:19
【问题描述】:

我读了一些关于链接列表的文章,谁能解释一下这个例子吗?

我们有一个包含 5 个元素的循环单链表。我们有一个指向列表末尾的指针 f。 f.next.next =f.next.next.next的操作是什么?

其实我在这种情况下总是误解指针和next指针。

谢谢。

【问题讨论】:

  • 你认为它有什么作用?你试过什么了?你画了吗?
  • 亲爱的@NetVipeC,它是循环的......
  • 如果是循环的,怎么会有list的结尾?

标签: algorithm pointers data-structures linked-list pascal


【解决方案1】:
F is the last node
f.next = node1
f.next.next = node2
f.next.next.next = node3

so f.next.next = f.next.next.next is actually node1.next = node3

节点 2 仍然存在并且它仍然指向节点 3,但由于没有其他节点指向它,因此被认为已从列表中删除。

此时正确的做法是删除 node2(释放它分配的内存),但这超出了最初的问题。

【讨论】:

    【解决方案2】:

    将它画在一张纸上,下一个是两个节点之间的箭头。看看最后一个节点,看看它指向哪里,那么答案就很简单了。

    【讨论】:

    • 如果我得到了我没有在这里问的解决方案
    • 您能帮我补充一下吗?
    • f.next 是第一个节点。那么 f.next.next 基本上是 n1->next 所以问题变成了 n1.next = ?第一个节点指向哪里?
    • 意思是去掉第二个元素?
    • 是的,您正在排除列表中的第二个元素。
    猜你喜欢
    • 2022-06-14
    • 1970-01-01
    • 1970-01-01
    • 2013-08-03
    • 1970-01-01
    • 2016-03-30
    • 2018-09-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多