< 返回博客

Deen 发表于 2019-01-18 11:48

Tags:linedlist

实现一个方法fn remove(head: Option<Box<LinkedList>>, val: i32) -> Option<Box<LinkedList>> 即,删除链表中值为val的结点,返回删除后的链表。

我现在有两个问题:

  1. 此函数签名中,head是获得了ownership的,但是似乎不是mutable的,这个怎么解呢?如果一个对象在声明时没有带mut,是不是之后都不能改了(refcell除外)。
  2. 怎样删除链表中间的结点呢?我看了learn rust with too many linkedlist上,知道怎么删除表头,但是如果要删除表中的元素,需要通过ref遍历到该结点,此时链表处于被引用状态是不可变的,如何实现删除呢?我发现标准库的链表也没有提供删除中间结点的API?有没有哪位大佬能帮忙解惑一下,谢谢

评论区

写评论

还没有评论

1 共 0 条评论, 1 页