题目链接:LeetCode 701. 二叉搜索树中的插入操作
题意:
给定二叉搜索树(BST)的根节点 root 和要插入树中的值 value ,将值插入二叉搜索树。 返回插入后二叉搜索树的根节点。 输入数据 保证 ,新值和原始二叉搜索树中的任意节点值都不同。
解题思路:
按照二叉搜索树的定义,直接进行模拟操作就可以了
递归代码:
func insertIntoBST(root *TreeNode, val int) *TreeNode {
var res TreeNode
res.Val = val
if root == nil {
return &res
}
if val > root.Val{
root.Right = insertIntoBST(root.Right,val)
}
if val < root.Val{
root.Left = insertIntoBST(root.Left,val)
}
return root
}
迭代法代码
func insertIntoBST(root *TreeNode, val int) *TreeNode {
if root == nil {
return &TreeNode{Val:val}
}
node := root
var pnode *TreeNode
for node != nil {
if val > node.Val {
pnode = node
node = node.Right
} else {
pnode = node
node = node.Left
}
}
if val > pnode.Val {
pnode.Right = &TreeNode{Val: val}
} else {
pnode.Left = &TreeNode{Val: val}
}
return root
}
标签:node,TreeNode,Val,val,树中,701,二叉,root,LeetCode
From: https://www.cnblogs.com/lxing-go/p/17526954.html