1.力扣上关于二叉树的题,都是已经将树创建好了
2.我们只需要根据题意选择前序,中序,后续遍历来遍历后台已经构建好的树
(先专注于遍历等与树相关的算法,后面再学习创建树也不迟,毕竟创建树非常简单)
3.第三点与树无关,对于class中的__init__函数,它只负责对传入数据的初始化,class内的其他函数无法调用__init__函数,只能调用__init__内初始化的参数,例如:
# Definition for a binary tree node.
# class TreeNode(object):
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
null=None
class FindElements(object):
def __init__(self, root):
"""
:type root: TreeNode
在init内层序遍历树,并初始化res的值
"""
if not root:
return []
self.res=[] #注意必须加上self,否则类内的其他函数无法调用res
cur=root
root.val=0
queque=[cur]
while queque:
cur=queque.pop(0)
self.res.append(cur.val)
if cur.left:
queque.append(cur.left)
cur.left.val=2*cur.val+1
self.res.append(cur.left.val)
if cur.right:
queque.append(cur.right)
cur.right.val=2*cur.val+2
self.res.append(cur.right.val)
def find(self, target):
"""
:type target: int
:rtype: bool
"""
if target in self.res:
return True
else:
return False