0
点赞
收藏
分享

微信扫一扫

数据结构与算法__01--单链表无顺序添加时,节点对象形成封闭环问题,无法添加同一个对象导致遍历输出时一直执行输出

1 进行对象是否相同的判断

  1. 创建辅助节点temp
  2. 遍历链表,找到最后
    1. 未到最后,将temp后移
  3. 当退出while循环时,temp就指向了链表的最后
  4. 判断add的节点对象是否存在,若存在则不添加
  5. 将最后这个节点的next 指向新的节点
public void add(HeroNode heroNode) {
    //创建辅助节点
    HeroNode temp = head;
    //遍历链表,找到最后
    while (true) {
        if (temp.next == null) {//
            break;
        }
        //未到最后,将temp后移
        temp = temp.next;
    }
    //当退出while循环时,temp就指向了链表的最后
    //判断add的节点对象是否存在,若存在则不添加
    if (temp == heroNode) {
        System.out.println("插入的节点对象已经存在");
    } else {
    //将最后这个节点的next 指向新的节点
        temp.next = heroNode;
    }
}

2 重写节点类里的equals方法

重写节点类里的equals方法,则相同内容的不同节点对象也无法添加

举报

相关推荐

0 条评论