二叉搜索树的插入操作(递归遍历)
701. 二叉搜索树中的插入操作 - 力扣(LeetCode)
class Solution {
public:TreeNode* insertIntoBST(TreeNode* root, int val) {if(root==NULL){TreeNode*node=new TreeNode(val);return node;}if(val<root->val){root->left=insertIntoBST(root->left,val);}if(val>root->val){root->right=insertIntoBST(root->right,val);}return root;}
};
由于二叉搜索树本身的性质,在进行插入节点的时候,可以将节点都同意插入到叶子节点上。
从根节点开始向下遍历,如果遍历到的节点值大于目标值,则向左子树遍历;如果遍历到的节点值小于目标值,则向右子树遍历。
终止条件判断:如果遍历到的节点为空,说明遍历到的上一层节点为叶子节点,所以要将目标值定义成新节点再返回给上一层的那个节点,在最后返回的结果才能完整。
if(root==NULL){TreeNode*node=new TreeNode(val);return node;}