思路分析示意图:
    image.png

    这个写法和上面的修改功能都有点bug,删除不存在的id时,会报错,还没有解决

    1. //删除节点
    2. //思路:
    3. //1.head不能动,因此我们需要一个temp辅助节点找到待删除节点的前一个节点
    4. //2.我们在比较时,时temp.next.no 和 需要删除的节点的no比较
    5. public void delete(int no) {
    6. HeroNode2 temp = head;
    7. boolean flag = false;//标志是否找到待删除的节点
    8. while (true) {
    9. if (temp == null) {
    10. break;
    11. }
    12. if (temp.next.no == no) {
    13. //找到了待删除节点的前一个节点
    14. flag = true;
    15. break;
    16. }
    17. temp = temp.next;
    18. }
    19. if (flag) {
    20. temp.next = temp.next.next;
    21. } else {
    22. System.out.printf("没有找到你要删除的%d号英雄\n", no);
    23. }
    24. }