我正在进行“算法第四版”一书的练习1.3.26。
/ ** * 1.3.26编写一个带有链表的方法remove() *和一个字符串键作为参数并删除所有节点
*在列表中将键作为其项目字段 *
* java LinkListRemove到
*要成为或将要去死 * ^ z / ^ d
*删除前:
*要成为或将要去死 *删除结果:
*是或去死 *尺寸:4
*
* /
我的实施工作在LinkListRemove,而且有效。但我觉得它不优雅。是否可以只使用单链表的一次遍历?
我的思路分为两个步骤:
如果您想要运行它,则需要this jar file。
答案 0 :(得分:0)
我从您的问题中了解到,您希望从列表中删除与给定键匹配的所有元素。
是的,这可以在列表的一次迭代中完成。以下步骤应该有所帮助:
Node temp =null;
if(key != null && first != null){
if(key.equals(first.item)){
temp = first;
first = first.next;
temp.link=null;
temp =null;
return;
}
else{
Node tempIt = first.link;
temp = first;
while(tempIt != null)
{
if(key.equals(tempIt.item)){
temp.link = tempLt.link;
tempLt.link = null;
tempLt = null;
}
temp = tempLt;
tempLt= tempLt.next;
}
}
}
return;