Leetcode 701. 二叉搜索树中的插入操作
Posted DCREN
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Leetcode 701. 二叉搜索树中的插入操作相关的知识,希望对你有一定的参考价值。
题目链接
https://leetcode.com/problems/insert-into-a-binary-search-tree/description/
题目描述
给定二叉搜索树(BST)的根节点和要插入树中的值,将值插入二叉搜索树。 返回插入后二叉搜索树的根节点。 保证原始二叉搜索树中不存在新值。
注意,可能存在多种有效的插入方式,只要树在插入后仍保持为二叉搜索树即可。 你可以返回任意有效的结果。
例如,
给定二叉搜索树:
4
/ 2 7
/ 1 3
和 插入的值: 5
你可以返回这个二叉搜索树:
4
/ 2 7
/ /
1 3 5
或者这个树也是有效的:
5
/ 2 7
/
1 3
4
题解
二叉搜索树的插入,依次遍历二叉树,找到插入节点的位置,插入即可。
代码
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
public TreeNode insertIntoBST(TreeNode root, int val) {
if (root == null) { return new TreeNode(val); }
TreeNode cur = root;
TreeNode pre = null;
while (cur != null) {
pre = cur;
if (cur.val > val) {
cur = cur.left;
if (cur == null) {
pre.left = new TreeNode(val);
}
} else {
cur = cur.right;
if (cur == null) {
pre.right = new TreeNode(val);
}
}
}
return root;
}
}
以上是关于Leetcode 701. 二叉搜索树中的插入操作的主要内容,如果未能解决你的问题,请参考以下文章
[JavaScript 刷题] 树 - 二叉搜索树中的插入操作, leetcode 701
[JavaScript 刷题] 树 - 二叉搜索树中的插入操作, leetcode 701
Leetcode刷题100天—701. 二叉搜索树中的插入操作( 二叉树)—day34
Leetcode刷题100天—701. 二叉搜索树中的插入操作( 二叉树)—day34