classSolution:deflowestCommonAncestor(self, root:'TreeNode', p:'TreeNode', q:'TreeNode')->'TreeNode':ifnot root:returnNoneif root==q or root==p:return root
left = self.lowestCommonAncestor(root.left,p,q)
right = self.lowestCommonAncestor(root.right,p,q)ifnot left and right:return right
elifnot right and left:return left
elif left and right:return root
## 迭代classSolution:definsertIntoBST(self, root: Optional[TreeNode], val:int)-> Optional[TreeNode]:ifnot root:return TreeNode(val)
pre = root
newnode = TreeNode(val)
cur = root.left if val<root.val else root.right
while(cur):
pre = cur
if cur.val>val:
cur = cur.left
else:
cur = cur.right
if pre.val>val:
pre.left = newnode
else:
pre.right = newnode
return root