写一算法:求单链表head的长度。(请写出具体过程)
时间: 2023-06-16 10:02:29 浏览: 117
编写一个计算头指针为h的单链表长度的算法.ppt
算法思路:
从头节点开始遍历单链表,每遍历一个节点,长度计数器加1,直到遍历到最后一个节点。
算法实现:
1. 初始化计数器count为0,指针p指向head节点。
2. 从head节点开始,依次遍历单链表中的每个节点,直到p指向最后一个节点。
3. 在遍历每个节点时,计数器count加1,指针p指向下一个节点。
4. 遍历结束后,返回count值,即为单链表head的长度。
代码实现:
```
int getLength(ListNode* head) {
int count = 0;
ListNode* p = head; // 指针p指向head节点
while (p != NULL) { // 遍历单链表中的每个节点
count++; // 计数器count加1
p = p->next; // 指针p指向下一个节点
}
return count; // 返回单链表head的长度
}
```
时间复杂度:O(n),其中n为单链表的节点数。
阅读全文