关于二叉树结点删除引出的小问题
2018-08-06 16:23 legend聪 阅读(199) 评论(0) 收藏 举报为了使问题简化,假如删除的是二叉树的叶子结点,
void delete1(node* &root) { if (root->left == NULL&&root->right == NULL) root = NULL; }
delete函数是这样的。现在假设你删除root的左结点,root已经分配空间。delete1(root->left)是可以删除的。但如果这样,node* temp=root->left;
delete1(temp);是删除不了的,但可以改变结点的信息val。
删除的函数加上&可以完成对指针自身的修改,不加&也可以完成对指针指向的地址的内容进行修改。
void delete1(node* root) { if (root->left == NULL&&root->right == NULL) root->val = 2; }
浙公网安备 33010602011771号