我正在做“算法第四版”一书的练习 1.3.26。
/** * 1.3.26 编写一个方法 remove(),它以链表
* 和字符串键作为参数,并删除
列表中所有以键作为其项字段的节点 *。
*
* java LinkListRemove to
* to be or to go to to die
* ^z / ^d
* remove before:
* to be or to to go to to to die
* remove 结果:
* be or go die
*尺寸:4
*
*/
我的实现在这里LinkListRemove,它的工作原理。但我觉得它不优雅。单链表是否可以只使用一次遍历?
我的思路是一个两步的过程:
- 从第一个删除连续的键,处理后,链表以非键节点开始或为空。
- 在第一个节点之后删除匹配的节点,现在链接列表以非关键节点开始或为空。
如果你想运行它,你需要这个 jar 文件。