img

    1. //删除节点
    2. //思路
    3. //1. head 不能动,因此我们需要一个temp辅助节点找到待删除节点的前一个节点
    4. //2. 说明我们在比较时,是temp.next.no 和 需要删除的节点的no比较
    5. public void del(int no) {
    6. HeroNode temp = head;
    7. boolean flag = false; // 标志是否找到待删除节点的
    8. while(true) {
    9. if(temp.next == null) { //已经到链表的最后
    10. break;
    11. }
    12. if(temp.next.no == no) {
    13. //找到的待删除节点的前一个节点temp
    14. flag = true;
    15. break;
    16. }
    17. temp = temp.next; //temp后移,遍历
    18. }
    19. //判断flag
    20. if(flag) { //找到
    21. //可以删除
    22. temp.next = temp.next.next;
    23. }else {
    24. System.out.printf("要删除的 %d 节点不存在\n", no);
    25. }
    26. }