python 递归和非递归实现 统计链表节点个数

简介: python 递归和非递归实现 统计链表节点个数

fdccadf6326b4b5ca7f3f3153ba49764.png

 非递归版本:

class ListNode:
    def __init__(self, x,next=None):
        self.val = x
        self.next = next
def sortInList(head):
    cout=0
    while head:
        cout+=1
        head = head.next
    return cout
if __name__ == '__main__':
    root=ListNode(1,ListNode(2,ListNode(3,ListNode(4,ListNode(5,None)))))
    len=sortInList(root)
    print('The length of the linked list is ' + str(len))

递归版本:

class ListNode:
    def __init__(self, x,next=None):
        self.val = x
        self.next = next
def sortInList(head,cout):
    if head:
        cout+=1
        head=head.next
    else:
        return cout
    return sortInList(head,cout)
if __name__ == '__main__':
    root=ListNode(1,ListNode(2,ListNode(3,ListNode(4,ListNode(5,None)))))
    cout = 0
    len=sortInList(root,cout)# 输入头节点
    print('The length of the linked list is ' + str(len))


相关文章
|
4月前
|
算法 Python
在Python编程中,分治法、贪心算法和动态规划是三种重要的算法。分治法通过将大问题分解为小问题,递归解决后合并结果
在Python编程中,分治法、贪心算法和动态规划是三种重要的算法。分治法通过将大问题分解为小问题,递归解决后合并结果;贪心算法在每一步选择局部最优解,追求全局最优;动态规划通过保存子问题的解,避免重复计算,确保全局最优。这三种算法各具特色,适用于不同类型的问题,合理选择能显著提升编程效率。
96 2
|
5月前
|
数据可视化 数据挖掘 Python
Seaborn 库创建吸引人的统计图表
【10月更文挑战第11天】本文介绍了如何使用 Seaborn 库创建多种统计图表,包括散点图、箱线图、直方图、线性回归图、热力图等。通过具体示例和代码,展示了 Seaborn 在数据可视化中的强大功能和灵活性,帮助读者更好地理解和应用这一工具。
77 3
|
5月前
|
JSON 数据格式 Python
Python实用记录(十四):python统计某个单词在TXT/JSON文件中出现的次数
这篇文章介绍了一个Python脚本,用于统计TXT或JSON文件中特定单词的出现次数。它包含两个函数,分别处理文本和JSON文件,并通过命令行参数接收文件路径、目标单词和文件格式。文章还提供了代码逻辑的解释和示例用法。
86 0
Python实用记录(十四):python统计某个单词在TXT/JSON文件中出现的次数
|
5月前
LeetCode第二十四题(两两交换链表中的节点)
这篇文章介绍了LeetCode第24题的解法,即如何通过使用三个指针(preNode, curNode, curNextNode)来两两交换链表中的节点,并提供了详细的代码实现。
53 0
LeetCode第二十四题(两两交换链表中的节点)
|
5月前
Leetcode第十九题(删除链表的倒数第N个节点)
LeetCode第19题要求删除链表的倒数第N个节点,可以通过快慢指针法在一次遍历中实现。
63 0
Leetcode第十九题(删除链表的倒数第N个节点)
|
5月前
|
Java 程序员 C++
【Python】链式、嵌套调用、递归、函数栈帧、参数默认值和关键字参数
【Python】链式、嵌套调用、递归、函数栈帧、参数默认值和关键字参数
59 0
【Python】链式、嵌套调用、递归、函数栈帧、参数默认值和关键字参数
05_删除链表的倒数第N个节点
05_删除链表的倒数第N个节点
|
5月前
(剑指offer)18、删除链表的节点—22、链表中倒数第K个节点—25、合并两个排序的链表—52、两个链表的第一个公共节点(2021.12.07)
(剑指offer)18、删除链表的节点—22、链表中倒数第K个节点—25、合并两个排序的链表—52、两个链表的第一个公共节点(2021.12.07)
74 0
|
7月前
|
算法
LeetCode第24题两两交换链表中的节点
这篇文章介绍了LeetCode第24题"两两交换链表中的节点"的解题方法,通过使用虚拟节点和前驱节点技巧,实现了链表中相邻节点的交换。
LeetCode第24题两两交换链表中的节点
|
5月前
|
数据可视化 Serverless Python
Python小事例—质地不均匀的硬币的概率统计
Python小事例—质地不均匀的硬币的概率统计
95 0