method: binary tree travesal
1 很多人不理解树的递归return的意思,其实有多种写法
2 首先不管怎么遍历,肯定要递归,因为树是有结构的,比如二叉树。
3 另外,递归时要出现无限的分支,这样形成了无限多的递归子函数,每一个函数必须有终止条件,比如Fibonacci数列的终止条件是数字,这里时return
4 这里的每一个return self.res是其中某一个的终止条件,最终结果时函数全部递归完的return self.res
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution:
def __init__(self):
self.res = []
def preorderTraversal(self, root: TreeNode) -> List[int]:
if root:
self.res.append(root.val)
self.preorderTraversal(root.left)
self.preorderTraversal(root.right)
return self.res