# 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 = rightclassSolution(object):definsertIntoBST(self, root, val):"""
:type root: TreeNode
:type val: int
:rtype: TreeNode
"""
newNode = TreeNode(val = val)ifnot root:return newNode
if root.val>val:
root.left = self.insertIntoBST(root.left, val)else:
root.right = self.insertIntoBST(root.right, val)return root
迭代
# 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 = rightclassSolution(object):definsertIntoBST(self, root, val):"""
:type root: TreeNode
:type val: int
:rtype: TreeNode
"""
cur = root
pre = root
newNode = TreeNode(val = val)ifnot root:return newNode
while cur:
pre = cur
if cur.val>val:
cur = cur.left
else:
cur = cur.right
if val>pre.val:
pre.right=newNode
else:
pre.left = newNode
return root