递归:单链表求和
Posted 我家大宝最可爱
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了递归:单链表求和相关的知识,希望对你有一定的参考价值。
链表遍历求和
- 递去:原问题是对链表所有元素求和,即
sum([1,2,3,4,5,6,7])
,子问题是对链表部分求和,即sum([2,3,4,5,6,7])
。为了求解sum([2,3,4,5,6,7])
,我们需要先求出子问题sum([3,4,5,6,7])
,不断的递去
,直到问题规模无法缩减,即到达了终止条件。 - 归来:当到达终止条件之后,我们已经有了最最最最小子问题的解了,然后不断的返回,在这样就可以得到最最最小子问题的解,然后层层返回,不断得到子问题的解,一直到最后一层。
可以将整个递归过程展开来看
最终实现的代码
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
def listSum(self, head: ListNode) -> List[int]:
if head is None:
return 0
s = self.listSum(head.next) + head.val # 子问题
return s # 其他逻辑
以上是关于递归:单链表求和的主要内容,如果未能解决你的问题,请参考以下文章