数据结构完成写一算法在单链表上实现线性表的ListLength(L)运算。
时间: 2024-09-16 15:03:10 浏览: 54
在单链表上实现计算列表长度(ListLength)的算法,你需要遍历整个链表并计数节点。以下是使用递归或迭代方法的一个简单示例:
### 使用迭代方法:
```python
class Node:
def __init__(self, value=None):
self.value = value
self.next = None
def list_length(head):
if head is None: # 如果链表为空,长度为0
return 0
else:
return 1 + list_length(head.next) # 从头开始,每次递增1,直到遍历到末尾
# 示例链表
head = Node(1)
head.next = Node(2)
head.next.next = Node(3)
print(list_length(head)) # 输出:3
```
### 使用递归方法:
```python
def list_length_recursive(node, count=0):
if node is None: # 递归结束条件:当节点为空,返回已累计的count
return count
else:
return list_length_recursive(node.next, count+1) # 继续递归下一层,每层加1
head = Node(1)
head.next = Node(2)
head.next.next = Node(3)
print(list_length_recursive(head)) # 输出:3
```
**
阅读全文