LeetCode#701二叉搜索树中的插入操作
链接
因为是二叉搜索树,所以遍历起来十分的简单,我是使用递归实现的,如果当前节点的值大于给定值,就找右子树,反之找左子树(题目说了不包含重复的情况),如果找到空节点就,就把给定值新建一个节点进行连接我觉得还是很简单的,就是复杂度有点高。。。。
附代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
|
class Solution { public: void dfs(TreeNode* root,int val) { if(val > root -> val) { if(root -> right == nullptr) { root -> right = new TreeNode(val); return; } dfs(root -> right,val); } else { if(root -> left == nullptr) { root -> left = new TreeNode(val); return ; } dfs(root -> left,val); } } TreeNode* insertIntoBST(TreeNode* root, int val) { if(root == nullptr) return new TreeNode(val); dfs(root,val); return root; } };
|