链表实现
单向链表
- 思路分析
- 创建头节点
- 插入节点:遍历该链表,将最后一个节点的next指向新增的节点。
- 修改节点:遍历该链表,找到对应编号的节点,进行修改
- 删除节点:遍历该链表,找到需要删除的节点,创建一个辅助节点指向当前需要删除节点的前一个节点,将辅助节点的next = 辅助接点的next.next。
- 代码实现
- 删除
//链表删除 public void deleteLinked(long no,HeroNode headNode){ boolean flag = false; if (headNode.next==null){ System.out.println("链表为空,无法删除!"); }else { HeroNode help = headNode; while (help.next!=null){ if (help.next.no==no){ flag = true; if (help.next.next!=null){ help.next = help.next.next; }else { help.next = null; } break; } help = help.next; headNode = headNode.next; } if (!flag){ System.out.println("未找到需要删除的节点!"); } } }
- 修改
//链表修改 public void updateLinked(HeroNode node,HeroNode headNode){ long no = node.getNo(); if (headNode.next==null){ System.out.println("链表为空,无法修改"); }else { HeroNode helpNode = headNode; boolean flag = false; while (helpNode!=null){ if (helpNode.no==no){ flag = true; helpNode.name = node.name; helpNode.nickName = node.nickName; break; } helpNode = helpNode.next; } if (!flag){ System.out.println("未找到需要替换的节点"); } } }