树
满二叉树:所有层节点都被填满
完全二叉树:
平衡二叉树:
二叉搜索树:
左子树所有节点<根节点<右子树所有节点
查找、增加:思路相同,从根节点开始遍历即可
删除:分情况,度为0:直接删除;度为1:使用子节点替换;度为2,使用左子树的最大节点或者右子树的最小节点进行替换,右子树的最小节点为中序遍历的下一个节点
前序、中序、后序遍历
数组存储:
满二叉树
任意二叉树:
完全二叉树:
题目:
递归三要素:
函数名,返回值,输入参数
判断终止条件
迭代公式
Definition for a binary tree node.
class TreeNode(object):
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
class Solution(object):
def preorderTraversal(self, root):
"""
:type root: TreeNode
:rtype: List[int]
"""
res=[]
def pt(node):
if node is None:
return
res.append(node.val)
pt(node.left)
pt(node.right)
pt(root)
return res