重点:树一旦涉及「改」,函数就要返回TreeNode类型,并且对递归调用的返回值进行接收
1. 题目描述
- 二叉搜索树中的插入操作
2. 分析
插入的值和当前结点的值比较,大于说明应该添加在当前结点的右边,然后去调整当前结点的右子树,并且重置当前结点的右子树为调整后的,小于类似
3. Java代码
public TreeNode insertIntoBST(TreeNode root, int val) {
// 一旦涉及「改」,函数就要返回TreeNode类型,并且对递归调用的返回值进行接收
if (root == null) return new TreeNode(val);
// 插入的值大于当前结点的值,说明应该添加在当前结点的右边,然后去调整当前结点的右子树,并且重置当前结点的右子树为调整后的
if (root.val < val) root.right = insertIntoBST(root.right, val);
// 插入的值小于当前结点的值,说明应该添加在当前结点的左边,然后去调整当前结点的左子树,并且重置当前结点的左子树为调整后的
if (root.val > val) root.left = insertIntoBST(root.left,val);
return root;
}
```