递归的简单运用

递归最核心的思想是:每一次递归,整体问题都要比原来减小,并且递归到一定层次时,要能直接给出结果!

1.高斯求和问题,1+2+3+4+…+99+100,

def sum_number(n):
    if n <= 0:
        return 0
    return n+sum_number(n-1)

sum_number(100)

2.评论楼的递归写法

如果有这么一个树形结构的评论系统(博主的博客评论系统):

1--直接对文章的评论
    1.1--对评论1的回复
        1.1.1--对评论1.1的回复
        1.1.2--对评论1.1的回复
        1.1.3--对评论1.1的回复
    1.2 --对评论1的回复
        1.2.1--对评论1.2的回复
    1.3 --对评论1的回复   
2--直接对文章的评论
    2.1 --对评论2的回复
        2.1.1--对评论2.1的回复
    2.2 --对评论2的回复
3--直接对文章的评论
4--直接对文章的评论

现在的要求是,将所有的评论,根据评论的关系,放入一个列表内,然后逐一打印出来

lis = []
all_top_comments = ["顶级评论1","顶级评论2","顶级评论3","....."]

def get_comment(comments):

    for comment in comments:
        lis.append(comment)
        child_comments = comment.child() # 假设有一个child方法获取当前评论的所有子评论。
        if len(child_comments) > 0:  # 如果有子评论的话,就递归查找下去,否则回退
            get_comment(child_comments)

get_comment(all_top_comments)

 

posted @ 2018-08-16 18:49  似水年华梦  阅读(113)  评论(0编辑  收藏  举报