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就停止了?

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

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