Python程序查找单向链表的长度而不使用递归的方法
单向链表是一种常见的数据结构。在实际编程过程中,需要查找单向链表的长度,如何不用递归的方法来实现呢?本文就来探讨一下如何使用迭代的方式来查找单向链表的长度。
更多Python相关文章,请阅读:Python 教程
单向链表的定义和创建
单向链表由节点组成,每个节点包含两部分,一部分称为数据域,存放节点的数据;另一部分称为指针域,存放指向下一个节点的指针。单向链表的第一个节点称为头节点。
下面为单向链表节点的定义:
class Node:
def __init__(self, data=None):
self.data = data
self.next = None
创建单向链表前,需要先定义头节点。下面为创建单向链表的代码:
head = Node()
cur = head
for i in range(10):
new_node = Node(i)
cur.next = new_node
cur = cur.next
以上代码创建了包含10个节点的单向链表,头节点的数据域为None,从第1个节点开始,每个节点的数据域存放一个整数,范围为0~9,指针域指向下一个节点。
使用迭代的方法查找单向链表的长度
在查找单向链表的长度时,我们只需从头节点开始,依次遍历每个节点,直到到达最后一个节点。遍历过程中,记录下经过的节点数,即为单向链表的长度。
下面为使用迭代的方法查找单向链表的长度的代码实现:
def get_length(head):
cur = head.next
length = 0
while cur:
length += 1
cur = cur.next
return length
以上代码中,get_length函数接收头节点作为输入参数,从头节点的下一个节点开始遍历单向链表。遍历过程中,对经过的每个节点计数,直到遇到最后一个节点,返回单向链表的长度。
下面是使用上述代码计算单向链表长度的例子:
head = Node()
cur = head
for i in range(10):
new_node = Node(i)
cur.next = new_node
cur = cur.next
length = get_length(head)
print("单向链表的长度为:", length)
输出结果为:
单向链表的长度为: 10
结论
本文介绍了如何使用迭代的方式来查找单向链表的长度,在实际编程过程中,使用迭代的方式更为简单和高效。
极客笔记