leetcode 701.二叉搜索树中的插入操作
这题很简单,记录父亲节点,找到位置后用父亲节点的指针插入
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} * TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {} * }; */ class Solution { public: TreeNode *p,*t; int i; TreeNode* insertIntoBST(TreeNode* root, int val) { p=root; while(p!=NULL){ if(val>p->val){ t=p; i=0; p=p->right; }else if(val<p->val){ t=p; i=1; p=p->left; } } if(p==NULL){ p=(TreeNode*)new TreeNode; p->val=val; p->left=NULL; p->right=NULL; if(root==NULL){ return p; }else if(i==0){ t->right=p; }else{ t->left=p; } } return root; } };