当前位置: 代码迷 >> 综合 >> JAVA 获取单向链表中有效节点的个数
  详细解决方案

JAVA 获取单向链表中有效节点的个数

热度:80   发布时间:2024-02-07 07:26:57.0

 JAVA 实现带头结点的链表根据节点大小按顺序新增、修改、删除节点 该文章已实现单向链表的创建及遍历等操作。

那么在此基础上,如何获取到单链表的节点的个数(如果是带头结点的链表,不需要统计头节点)呢?

实现思路:

1、先判断链表是否为空,为空则return。

2、创建临时节点temp指向链表的头部,用于后续循环。

3、创建变量size,用于存储有效节点个数。

4、使用while循环,当temp的下一个节点为空时,则循环结束break;

     否则,size++,同时将temp后移。

5、最后返回有效节点的个数size。

上代码:在SingleLinkedList2.class中添加以下方法

 public int getSingleLinkSize(HeroNode2 head){if(head.next == null){return 0;}HeroNode2 temp = head;int size = 0;while (true){if(temp.next == null){break;}size++;temp = temp.next;}return size;}

测试类:


public class SingleLinkedListDemo2 {public static void main(String[] args) {SingleLinkedList2 singleLinkedList = new SingleLinkedList2();HeroNode2 h1 = new HeroNode2(1,"AAA","A");HeroNode2 h2 = new HeroNode2(2,"BBB","B");HeroNode2 h3 = new HeroNode2(3,"CCC","C");HeroNode2 h4 = new HeroNode2(4,"DDD","D");singleLinkedList.addByOrder(h1);singleLinkedList.addByOrder(h3);singleLinkedList.addByOrder(h4);singleLinkedList.addByOrder(h2);singleLinkedList.list();int size = singleLinkedList.getSingleLinkSize(singleLinkedList.getHeadNode());System.out.printf("获取链表有效节点的个数为%d\n",size);}
}

输出结果:

HeroNode{no=1, name='AAA, nickName='A}
HeroNode{no=2, name='BBB, nickName='B}
HeroNode{no=3, name='CCC, nickName='C}
HeroNode{no=4, name='DDD, nickName='D}
获取链表有效节点的个数为4