1.递归
#递归法中序遍历二叉树
def inorderTraversal(self, root: TreeNode) -> List[int]:
if not root or (not root.left and not root.right):
return root
res = []
def helper(root):
if not root:
return
else:
helper(root.left)
res.append(root.val)
helper(root.right)
helper(root)
return res
2.想建立一个长度为n(假设n = 3)的列表
G = [0] * 3
感觉迭代和递归的转换再python里面就是把迭代的值存在栈或者序列里,然后下一步的求解直接调用就可,而递归没有每次都得重新开始。
3.如何判断列表list中有无重复元素
将list转换成set格式,然后判断集合和列表的长度是否一致
4.98. 验证二叉搜索树 之递归劝退系列
(aaaaa哭了,递归也太难了吧
def helper(node, lower = float('-inf'), upper = float('inf')):
if not node:
return True
val = node.val
if val <= lower or val >= upper:
return False
if not helper(node.right, val, upper):
return False
if not helper(node.left, lower, val):
return False
return True
return helper(root)