首先,求链表的长度需要遍历,下面为遍历的代码:
//求链表的长度
private int length(ListNode head) {
int len = 0;
while (head != null) {
len++;
head = head.next;
}
return len;
}
head 是头指针:
1.头指针是指链表指向第一个结点的指针
2.若链表有头结点,则是指向头结点的指针
3.头指针具有标识作用,用头指针冠以链表的名字
4.无论链表是否为空,头指针均存在
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