Skip to content

Latest commit

 

History

History
12 lines (6 loc) · 893 Bytes

File metadata and controls

12 lines (6 loc) · 893 Bytes

思路

使用指针的指针curr记录指向当前节点指针的地址。指针的指针可以解引用得到指向当前节点的指针,然后可以进一步修改其next成员,指向删除节点的后一节点,实现节点删除

每次处理开始先解引用curr,检查指向当前节点的指针是否为空,为空说明链表为空或者到达链表结尾,此时处理完成。否则,说明当前节点不为空,需要进一步处理:

  • 如果当前节点中,存在下一个节点的指针(即next成员非空)并且当前节点的值和下一节点的值相等,则删除下一节点,用临时指针tp记录删除节点的地址,然后更新链表

  • 否则,说明下一节点不能删除或者下一节点为空,因此修改curr的值,使其保存指向下一节点的指针的地址。

需要从链表头遍历到链表结尾,时间代价为n