我目前正在尝试研究链接列表在C ++中的工作方式,并且我遇到了删除链接列表中某个值的主题。我理解如何删除特定值的第一个实例,并且那里没有问题。但是,我无法解释如何删除链表中某些值的所有实例。我可以看到如何在列表的开头和中间删除任何值的实例,但是一旦l->接下来是nullptr我就会卡住。如果l-> next是nullptr,那么如何将指针从值之前重定向到要删除的值之后的某个位置?
如果这是一个重复的问题,我道歉;如果是这种情况,我会删除它。答案 0 :(得分:0)
为了删除一个节点你确实使它的指针无效,所以为了能够继续迭代列表,你需要在删除之前保存下一个指针:
<c:forEach var="loop" items="${Courses}"
varStatus="pLoop">
<c:set var="pKey" value="${pKey+1}"/> <!-- value that needs to be set as new key -->
<fmt:parseNumber var="tempKey" integerOnly="true"
type="number" value="${loop.key}" />
<!--Normally key values are set like this in hashmap in jstl -->
<c:set target="${Courses}" property="${pKey}" value="something"/>
<!-- but I want to keep value intact, want to change only key -->
</c:forEach>