题目描述:
给定二叉搜索树(BST)的根节点和要插入树中的值,将值插入二叉搜索树。 返回插入后二叉搜索树的根节点。 保证原始二叉搜索树中不存在新值。
注意,可能存在多种有效的插入方式,只要树在插入后仍保持为二叉搜索树即可。 你可以返回任意有效的结果。
例如,
你可以返回这个二叉搜索树:
或者这个树也是有效的:
# Definition for a binary tree node.
# class TreeNode(object):
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution(object):
def insertIntoBST(self, root, val):
"""
:type root: TreeNode
:type val: int
:rtype: TreeNode
"""
#思路:不断和当前遍历到的节点进行数值大小比较,将其作为叶子节点进行插入
if root == None:
return TreeNode(val)
def insertIntoTree(p,val):
if p.val > val:
if p.left == None:
p.left = TreeNode(val)
else:
insertIntoTree(p.left,val)
else:
if p.right == None:
p.right = TreeNode(val)
else:
insertIntoTree(p.right,val)
insertIntoTree(root,val)
return root
菜鸟一枚,代码仅供参考,如有问题,望指正~