本文共 2416 字,大约阅读时间需要 8 分钟。
求单链表有效节点的个数。
package LinkedList.test;/** * @version 1.0 * @auther WangCode * @date 2021/4/3 16:08 */public class SingleLinkedListTest { public static void main(String[] args) { Node n1 = new Node(1, "123"); Node n2 = new Node(1, "123"); Node n3 = new Node(1, "123"); LinkedList linkedList = new LinkedList(); linkedList.add(n1); linkedList.add(n2); linkedList.add(n3); System.out.println(linkedList.getLength(linkedList.getHead())); }}//定义一个节点class Node{ public int no; public String data; public Node next; //构造方法 public Node(int no, String data){ this.no = no; this.data = data; } @Override public String toString() { return "Node{" + "no=" + no + ", data='" + data + '\'' + '}'; }}//创建单链表class LinkedList{ //初始化头节点 private Node head = new Node(0,""); public Node getHead() { return head; } /** * 添加节点 * @param node */ public void add(Node node){ Node temp = head; while (true){ if (temp.next == null){ //找到链表最后一个节点 break; } temp = temp.next; } temp.next = node;//在链表的最后添加新的节点 } /** * 遍历链表 */ public void list(){ Node temp = head.next; if (temp == null){ System.out.println("该链表为空"); return; } while(true){ if (temp == null){ break; } System.out.println(temp); temp = temp.next; } } /** * 获取单链表的长度 * @param head 单链表的头节点 * @return 返回单链表的有效长度 */ public int getLength(Node head){ if (head.next == null){ return 0; } int length = 0; Node temp = head.next; while(temp != null){ length++; temp = temp.next; } return length; }}
链表是由节点构成的,我们先创建我们的节点类;
创建单链表,添加了三个功能,添加节点(尾部添加)、遍历链表、返回链表有效长度;public int getLength(Node head){ if (head.next == null){ //这里我们定义的头节点是个空节点,所以此时链表为空 return 0; } int length = 0;//定义长度 Node temp = head.next;//辅助指针 while(temp != null){ // 一直遍历到链表的尾部 length++; temp = temp.next; } return length; }
运行结果:
转载地址:http://tqqoz.baihongyu.com/