Python程序查找单向链表的长度而不使用递归的方法

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

结论

本文介绍了如何使用迭代的方式来查找单向链表的长度,在实际编程过程中,使用迭代的方式更为简单和高效。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程