博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
新手算法学习之路----二叉树(在一个二叉查找树中插入一个节点)
阅读量:5105 次
发布时间:2019-06-13

本文共 1320 字,大约阅读时间需要 4 分钟。

题目:给定一棵二叉查找树和一个新的树节点,将节点插入到树中。

          你需要保证该树仍然是一棵二叉查找树。

给出如下一棵二叉查找树,在插入节点6之后这棵二叉查找树可以是这样的:

2             2 / \           / \1   4   -->   1   4   /             / \   3             3   6 需要搞清楚定义:二叉排序树或者是一棵空树;或者是具有下列性质的二叉树:               (1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值;               (2)若右子树不空,则右子树上所有结点的值均大于它的根结点的值;               (3)左、右子树也分别为二叉排序树; Java代码:
/** * Definition of TreeNode: * public class TreeNode { *     public int val; *     public TreeNode left, right; *     public TreeNode(int val) { *         this.val = val; *         this.left = this.right = null; *     } * } */public class Solution {    /**     * @param root: The root of the binary search tree.     * @param node: insert this node into the binary search tree     * @return: The root of the new binary search tree.     */    public TreeNode insertNode(TreeNode root, TreeNode node) {        // write your code here        if(root==null){            return node;        }        if(root.val>node.val){                       //这个树里面没有重复的数,所以无需考虑root.val == node.val的情况            root.left = insertNode(root.left, node);  //待插入值肯定在左右子树的叶子几点上面        }else{            root.right = insertNode(root.right,node);        }        return root;//最后返回的root值为根节点,每次递归后就要返回当前的root值,以备上一层使用,最后返回整个树的根节点    }    }

 

转载于:https://www.cnblogs.com/junliu37/p/7238591.html

你可能感兴趣的文章
下一代操作系统与软件
查看>>
【iOS越狱开发】如何将应用打包成.ipa文件
查看>>
[NOIP2013提高组] CODEVS 3287 火车运输(MST+LCA)
查看>>
Yii2 Lesson - 03 Forms in Yii
查看>>
Python IO模型
查看>>
Ugly Windows
查看>>
DataGridView的行的字体颜色变化
查看>>
Java再学习——关于ConcurrentHashMap
查看>>
如何处理Win10电脑黑屏后出现代码0xc0000225的错误?
查看>>
局域网内手机访问电脑网站注意几点
查看>>
c++ STL
查看>>
json数据在前端(javascript)和后端(php)转换
查看>>
[Serializable]的应用--注册码的生成,加密和验证
查看>>
Groovy中那些神奇注解之ToString
查看>>
Day19内容回顾
查看>>
第七次作业
查看>>
MySql update inner join!MySql跨表更新 多表update sql语句?如何将select出来的部分数据update到另一个表里面?...
查看>>
我最宏大的个人愿望
查看>>
比赛总结一
查看>>
SpringBoot项目打包
查看>>