将项目附加到单个链接列表时,典型步骤为:
y
list.head
(y
)y=list.head
y
的下一个字段为NULL
(y=y.next
)y.next=newNode
)现在我问自己:如果我做y = list.head
,y
和list.head
基本上有两个不同的记忆位置,对吗?如果我现在y.next = newNode
,现在下一个字段list.head
已更改(在newNode
中)?如果是这样,为什么? y
和list.head
不是两个不同的对象吗?我可能会把我与指针混淆......
答案 0 :(得分:0)
(假设您不是在谈论特定的编程语言)
如果您创建新节点y
并将其指向list.head
,则它们将指向相同的内存位置。
但是,当您说将list.head
复制到y
时,它取决于您是DeepCopy还是ShallowCopy列表到y
。
好像你做y = list.head
似乎list
改变了。
答案 1 :(得分:0)
如果您要附加到列表的开头,则希望新节点 y 位于前面。
希望有所帮助
答案 2 :(得分:0)
在singly linked list
中,每个node
通常都有属性/值:
当您将 当您设置pointer
设置为整个head
的{{1}}时,linked list
保持与完全相同的内存位置{ {1}} {em} pointer
。{/}
pointer
head
值时,您要在node
的尾部添加新的node's
内存位置。
答案 3 :(得分:0)
情况就是这样:我想在列表的队列中添加一个新节点...当我执行y = y.next来扫描列表时,是否只更改了他的状态或者它开始了y的副本.next节点?