qq_35292447
jeremie_SYSU
2018-10-20 19:30
采纳率: 0%
浏览 2.9k

python递归的无法返回或者达到某一条件终止并return

 class Solution:
    def canJump(self, nums):
        if len(nums) == 0:
            return False
        def DFS(nums):
            if len(nums) == 1:
                return True
            for i in range(1,nums[0]+1):
                DFS(nums[i:])

        if DFS(nums) is False:
            print('1111')
            return True
        elif DFS(nums) is None:
            print('2222')
            return False

S =Solution()
S.canJump([2,0,0])

两个问题:1为什么我DFS函数没有返回TRUE ,返回的是None 2如果按照网上的方法在
DFS(nums[i:]) 前加上return 为什么我的i不会循环到2这个值,只能是1就停止了?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • qq_39234705
    流泪熊猫头 2018-10-21 06:47

    递归调用先调用的后返回,第一次调用DFS(),不满足if条件,所以不会返回True,而不指定返回值,函数默认return None。所以递归结束,就会返回第一次调用的结果None。

    这个问题我也遇到过:
    https://blog.csdn.net/qq_39234705/article/details/82808505

    点赞 评论

相关推荐