题目:在二叉查找树中插入节点
2015-08-19 19:11
155 查看
给定一棵二叉查找树和一个新的树节点,将节点插入到树中。
你需要保证该树仍然是一棵二叉查找树。
您在真实的面试中是否遇到过这个题?
Yes
哪家公司问你的这个题?
Airbnb
Alibaba
Amazon Apple
Baidu Bloomberg
Cisco Dropbox
Ebay Facebook
Google Hulu
Intel Linkedin
Microsoft NetEase
Nvidia Oracle
Pinterest Snapchat
Tencent Twitter
Uber Xiaomi
Yahoo Yelp
Zenefits
感谢您的反馈
样例
给出如下一棵二叉查找树,在插入节点6之后这棵二叉查找树可以是这样的:
挑战
能否不使用递归?
标签 Expand
LintCode 版权所有
二叉查找树
相关题目 Expand
3
(lintcode-copyright),(binary-search-tree)
困难 删除二叉查找树的节点 24 %
/**
* 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;
TreeNode x = root;
while (x != null) {
if (x.val > node.val) {
if (x.left == null) {
x.left = node;
break;
} else {
x = x.left;
}
} else {
if (x.right == null) {
x.right = node;
break;
} else {
x = x.right;
}
}
}
return root;
}
}
你需要保证该树仍然是一棵二叉查找树。
您在真实的面试中是否遇到过这个题?
Yes
哪家公司问你的这个题?
Airbnb
Alibaba
Amazon Apple
Baidu Bloomberg
Cisco Dropbox
Ebay Facebook
Google Hulu
Intel Linkedin
Microsoft NetEase
Nvidia Oracle
Pinterest Snapchat
Tencent Twitter
Uber Xiaomi
Yahoo Yelp
Zenefits
感谢您的反馈
样例
给出如下一棵二叉查找树,在插入节点6之后这棵二叉查找树可以是这样的:
2 2 / \ / \ 1 4 --> 1 4 / / \ 3 3 6
挑战
能否不使用递归?
标签 Expand
LintCode 版权所有
二叉查找树
相关题目 Expand
3
(lintcode-copyright),(binary-search-tree)
困难 删除二叉查找树的节点 24 %
/**
* 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;
TreeNode x = root;
while (x != null) {
if (x.val > node.val) {
if (x.left == null) {
x.left = node;
break;
} else {
x = x.left;
}
} else {
if (x.right == null) {
x.right = node;
break;
} else {
x = x.right;
}
}
}
return root;
}
}
相关文章推荐
- UVA 674 - Coin Change
- ubuntu中mysql修改编码utf8
- android BitmapUtil 工具类
- ListView 滑动时数据重复错位解决
- 题目:在O(1)时间复杂度删除链表节点
- PHP RSA加解密示例(转)
- CentOS中安装subversion,并使用svn+ssh访问
- 题目:哈希函数
- 题目:合并排序数组 II
- HDU 4403 A very hard Aoshu problem (DFS)
- 主项定理Master Method
- 题目:合并排序数组
- Android播放gif动画,增加屏幕掉金币效果
- 使用C/C++发展Web系统开源
- Java String 与 StringBuffe 区别
- Android播放gif动画,增加屏幕掉金币效果
- 背包模板
- 【栈】日志分析(BSOJ2981)
- mysql中的主从复制slave-skip-errors参数使用方法
- 题目:合并区间