在二叉查找树中插入节点-LintCode
来源:互联网 发布:lol出现一个网络问题 编辑:程序博客网 时间:2024/05/21 08:01
描述:
给定一棵二叉查找树和一个新的树节点,将节点插入到树中。
你需要保证该树仍然是一棵二叉查找树。
注意事项
You can assume there is no duplicate values in this tree + node.
给出如下一棵二叉查找树,在插入节点6之后这棵二叉查找树可以是这样的:
2 2 / \ / \1 4 --> 1 4 / / \ 3 3 6
思路:
若二叉排序树为空树,则新插入的结点为新的根节点;否则,新插入的结点必为一个新的叶子结点。
这样,我们就只需要比较给定node与根结点的值,从而选择继续访问根结点的左子树还是右子树。
访问到空位置,即插入node。
AC代码:
/** * Definition of TreeNode: * class TreeNode { * public: * int val; * TreeNode *left, *right; * TreeNode(int val) { * this->val = val; * this->left = this->right = NULL; * } * } */class Solution {public: /** * @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. */ void insertNodeCore(TreeNode* root,TreeNode* node) { if(root->val > node->val && root->left==NULL) { root->left=node; return; } if(root->val < node->val && root->right==NULL) { root->right=node; return; } if(root->val > node->val) insertNodeCore(root->left,node); else insertNodeCore(root->right,node); } TreeNode* insertNode(TreeNode* root, TreeNode* node) { // write your code here if(root==NULL) return node; insertNodeCore(root,node); return root; }};
阅读全文
0 0
- lintcode-在二叉查找树中插入节点-85
- LintCode:在二叉查找树中插入节点
- lintcode ----在二叉查找树中插入节点
- LintCode(85)在二叉查找树中插入节点
- LintCode 85-在二叉查找树中插入节点
- 【lintcode笔记】在二叉查找树中插入节点
- lintcode——在二叉查找树中插入节点
- LintCode-在二叉查找树中插入节点
- lintcode 在二叉查找树中插入节点
- LintCode 在二叉查找树中插入节点
- 在二叉查找树中插入节点-LintCode
- LintCode 在二叉查找树中插入节点
- 在二叉查找树中插入节点-LintCode
- LintCode 85. 在二叉查找树中插入节点
- LintCode Insert a Node in a Binary Search Tree 在二叉查找树中插入节点
- lintcode insert-node-in-a-binary-search-tree 在二叉查找树中插入节点
- LintCode(S)二叉查找树插入节点
- 在二叉查找树中插入节点
- 《深入理解java虚拟机》学习笔记6——类加载机制
- 博客重整
- Java小球垂直下落垂直反弹代码
- 面试问题收集总结
- 读书笔记《Effective C++》条款30:透彻了解inlining的里里外外
- 在二叉查找树中插入节点-LintCode
- 汤晓鸥谈深度学习三大核心要素:算法设计、高性能的计算能力以及大数据
- JS运算符和语句
- 2017计蒜之道程序设计大赛初赛第二场题解
- citrix实施部署测试题库
- JS中window.onload事件详解
- 3.创建和维护索引库(Lucene6.0.0 CRUD)
- cpp
- CentOS7中安装网易云音乐