zoukankan      html  css  js  c++  java
  • LeetCode701.Insert into a Binary Search Tree

    题目 

    给定二叉搜索树(BST)的根节点和要插入树中的值,将值插入二叉搜索树。 返回插入后二叉搜索树的根节点。 保证原始二叉搜索树中不存在新值。

    注意,可能存在多种有效的插入方式,只要树在插入后仍保持为二叉搜索树即可。 你可以返回任意有效的结果。

    例如, 

    给定二叉搜索树:
    
            4
           / 
          2   7
         / 
        1   3
    
    和 插入的值: 5
    

    你可以返回这个二叉搜索树:

             4
           /   
          2     7
         /    /
        1   3 5
    

    或者这个树也是有效的:

             5
           /   
          2     7
         /    
        1   3
             
              4

    Tag


    代码

    1.递归 。ac

    class Solution {
    public:
        TreeNode* insertIntoBST(TreeNode* root, int val) {
            TreeNode* head=root;
            root =Helper(root,val);
            return head;
        }
        TreeNode* Helper(TreeNode* root, int val)
        {
            if(root==nullptr)
                root= new TreeNode(val);
            else if(root->val < val )
                root->right = Helper(root->right,val);
            else if(root->val > val)
                root->left =Helper(root->left,val);
    
            return root;
        }
    };

    2.迭代

    class Solution {
    public:
        TreeNode* insertIntoBST(TreeNode* root, int val) { 
            if(root==nullptr) root= new TreeNode(val);
            TreeNode* cur= root;
            while(true)
            {
                if(cur->val<val)
                    {
                        if(!cur->right) {cur->right=new TreeNode(val);break;}
                        else cur=cur->right;
                    }
                else if(cur->val > val)
                        if(!cur->left ) {cur->left= new TreeNode(val);break;}
                        else cur=cur->left;
            }
            return root;
        }    
    };

    问题

  • 相关阅读:
    Map集合的四种遍历
    java 请求 google translate
    Linux 内核初级管理
    Linux GRUB
    Linux 系统启动流程
    Linux 任务计划 crontab
    Linux 进程管理工具
    Linux sudo实作
    Linux 进程管理
    Linux 网络配置命令:ip、ss
  • 原文地址:https://www.cnblogs.com/lightmare/p/10463462.html
Copyright © 2011-2022 走看看