< 返回版块

Icatream 发表于 2019-10-12 14:11

链表翻转, 比如0->1->2->3->4, 在x号位分开. 0<-1<-2 3<-4 再合并 2->1->0->4->3

这样需要拿到Node 0, 在后续操作完成后, 再将 node0.next = last_node 遇到了些问题.代码贴playground了.

一开始去StackOverFlow上提了问, 但发现StackOverFlow上聊rust的好少.

StackOverFlow

Playground

请大佬解答一下.


Ext Link: https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=68521e3214b020258f81b8bc4a8d15d0

评论区

写评论
作者 Icatream 2019-10-12 21:29

多谢, 我研究研究 对以下内容的回复:

作者 Icatream 2019-10-12 17:42

遇到这种需要2次mutable引用的情况, 该怎么办呢? 对以下内容的回复:

safe应该是可以做的,但是必须把之前的0节点先move出来,完成1至x的倒置之后再插回到1后面,再插入x+1至n的节点。之前波浪号被当成markdown符号了。

xjkdev 2019-10-12 17:31

对不起,好像还是有问题,不能拿到1节点的引用,实际上和现在的情况是一样的…… 对以下内容的回复:

safe应该是可以做的,但是必须把之前的0节点先move出来,完成1至x的倒置之后再插回到1后面,再插入x+1至n的节点。之前波浪号被当成markdown符号了。

作者 Icatream 2019-10-12 17:14

我试试 对以下内容的回复:

safe应该是可以做的,但是必须把之前的0节点先move出来,完成1至x的倒置之后再插回到1后面,再插入x+1至n的节点。之前波浪号被当成markdown符号了。

xjkdev 2019-10-12 17:09

对以下内容的回复:

safe应该是可以做的,但是必须把之前的0节点先move出来,完成1至x的倒置之后再插回到1后面,再插入x+1至n的节点。之前波浪号被当成markdown符号了。

xjkdev 2019-10-12 17:08

safe应该是可以做的,但是必须把之前的0节点先move出来,完成1x的倒置之后再插回到1后面,再插入x+1n的节点。

作者 Icatream 2019-10-12 17:00

我试着将line41的first_part_tail改成raw pointer. 然后随着循环的进行, 这个raw pointer在变动, 不是最初记录的node0. 然后就很晕了, 不知该怎么办. 对以下内容的回复:

simoin 2019-10-12 16:34

还是用unsafe写数据结构舒服些

1 共 9 条评论, 1 页