写一程序已知单链表L求表长
时间: 2023-10-06 10:12:38 浏览: 38
假设单链表的结构体定义如下:
```c
typedef struct node{
int data;
struct node *next;
}Node, *LinkedList;
```
其中 `data` 表示节点数据,`next` 表示下一个节点的指针。
下面是求单链表长度的程序:
```c
int Length(LinkedList L) {
int len = 0;
Node *p = L->next;
while (p != NULL) {
len++;
p = p->next;
}
return len;
}
```
程序中的 `L` 表示单链表头节点,函数返回单链表的长度。
相关问题
写一代码已知单链表L求表长
这里是 Python 代码实现:
```python
def get_length(head):
"""
计算单链表的长度
:param head: 链表头节点
:return: 链表的长度
"""
length = 0
cur = head
while cur:
length += 1
cur = cur.next
return length
```
其中,`head` 表示链表的头节点,`length` 表示链表的长度,`cur` 表示当前节点。使用 `while` 循环遍历整个链表,每遍历到一个节点,就将 `length` 加 1,最终返回 `length` 即可。
写一个算法已知单链表L,求单链表的表长
1. 初始化一个计数器count为0。
2. 遍历单链表L,每遍历一个节点count加1。
3. 当遍历完整个单链表L时,count即为单链表的表长。
4. 返回count即可。
伪代码如下:
```
count = 0 // 初始化计数器
p = L.head // 从单链表的头节点开始遍历
while p is not null do
count = count + 1 // 计数器加1
p = p.next // 移动指针到下一个节点
end while
return count // 返回计数器的值
```