lintcode-在二叉查找树中插入节点-85

来源:互联网 发布:淘宝亿次元 编辑:程序博客网 时间:2024/05/22 13:57

给定一棵二叉查找树和一个新的树节点,将节点插入到树中。

你需要保证该树仍然是一棵二叉查找树。

样例

给出如下一棵二叉查找树,在插入节点6之后这棵二叉查找树可以是这样的:

  2             2 / \           / \1   4   -->   1   4   /             / \   3             3   6
挑战

能否不使用递归?

/** * Definition of TreeNode: * class TreeNode { * public: *     int val; *     TreeNode *left, *right; *     TreeNode(int val) { *         this->val = val; *         this->left = this->right = NULL; *     } * } */class Solution {public:     TreeNode* insertNode(TreeNode* root, TreeNode* node) {        if(!node)            return root;        if(!root)            return root=node;                    TreeNode *cur=root;                while(cur){            if(node->val==cur->val)                return root;            else if(node->val<cur->val){                if(!cur->left){                    cur->left=node;                    return root;                }                cur=cur->left;                }else{                if(!cur->right){                    cur->right=node;                    return root;                }                cur=cur->right;            }        }    }};


0 0
原创粉丝点击