Add, Search, Delete Node in BST.
来源:互联网 发布:ppt数据分析图 编辑:程序博客网 时间:2024/06/01 09:12
Add Node, Search Node, Delete Node, 的基本操作,被问了两次了。写出来。
http://quiz.geeksforgeeks.org/binary-search-tree-set-1-search-and-insertion/
// add the node;public TreeNode addNode(TreeNode root, int val) {if(root == null){root = new TreeNode(val);return root;}if(root.val == val) {return root;} else if(root.val > val) {root.left = addNode(root.left, val);} else { // root.val < val;root.right = addNode(root.right, val);}return root;}// search the node;public TreeNode searchNode(TreeNode root, int val) {if(root == null || root.val == val) {return root;}if(val < root.val){return searchNode(root.left, val);} else {return searchNode(root.right, val);}}
http://quiz.geeksforgeeks.org/binary-search-tree-set-2-delete/
delete node分三类,如上,左右两边都有的,那么就找最右边的最小的,copy到root,然后delete那个node;
// delete node; public TreeNode deleteNode(TreeNode root, int val) {if(root == null) return root;if(val < root.val){root.left = deleteNode(root.left, val);} else if(val > root.val) {root.right = deleteNode(root.right, val);} else { // root.val == val, find the treenode that needs to be deleted;if(root.left == null) {return root.right;} else if(root.right == null) {return root.left;} else { // root has left & right node;root.val = findInorderNextNode(root.right);root.right = deleteNode(root.right, root.val);}}return root;}
0 0
- Add, Search, Delete Node in BST.
- Delete node in BST
- Delete Node in a BST
- Delete Node in a BST
- Delete Node in a BST
- 【二叉树】二分查找树,节点删除【Add to List 450. Delete Node in a BST】
- [LeetCode]Delete Node in a BST
- [hard]450. Delete Node in a BST
- 450. Delete Node in a BST
- LeetCode 450. Delete Node in a BST
- 450. Delete Node in a BST
- LeetCode 450. Delete Node in a BST
- Leetcode-450. Delete Node in a BST
- 450. Delete Node in a BST
- 【LeetCode】 450. Delete Node in a BST
- [LeetCode]450. Delete Node in a BST
- 450 Delete Node in a BST
- 450. Delete Node in a BST
- C++标准库和标准模板库
- codevs 3325 过山车 DP
- HDU ACM 11 2033 人见人爱A+B
- C++ STL之vector详解
- react 安装
- Add, Search, Delete Node in BST.
- 格局,能力和资源
- 我干了一件傻事,在ViewController的subclass中企图使用initWithFrame
- 在github上浏览html文件
- 勾股定理一日一证连载132
- Android 编程下两种方式注册广播的区别
- 数字签名过程
- 协程--Coroutine小记
- JSON