关于链表的长度,head == NULL 与 head.next == NULL的区别

首先,求链表的长度需要遍历,下面为遍历的代码:

 //求链表的长度
    private int length(ListNode head) {
        int len = 0;
        while (head != null) {
            len++;
            head = head.next;
        }
        return len;
    }
 
 head 是头指针:
  1.头指针是指链表指向第一个结点的指针
  2.若链表有头结点,则是指向头结点的指针
  3.头指针具有标识作用,用头指针冠以链表的名字
  4.无论链表是否为空,头指针均存在
 
head == NULL 与 head.next == NULL的区别:
head == NULL意思是头指针是否为空
head.next == NULL意思是头指针的下一个节点是否为空
 
举个例子说明,例如链表有5个节点,[1,2,3,4,5],如果head指向1,则head->next指向2,则:
 
head == NULL  等同于 :1 == null     ,  head.next == NULL 等同于 :2 == null
 
所以上面的函数会返回 :5
 
 
 
原文地址:https://www.cnblogs.com/huangbf/p/15117754.html