删除节点 /* Deleting a node from Binary search tree */ #include<iostream> using namespace std; struct Node { int data; struct Node *left; struct Node *right; }; //Function to find minimum in a tree. Node* FindMin(Node* root) { while(root->left != NULL) root = root->left; return root; } // Function to search a delete a value from tree. struct Node* Delete(struct Node *root, int data) { if(root == NULL) return root; else if(data < root->data) root->left = Delete(root->left,data); else if (data > root->data) root->right = Delete(root->right,data); // Wohoo... I found you, Get ready to be deleted else { // Case 1: No child if(root->left == NULL && root->right == NULL) { delete root; root = NULL; } //Case 2: One child else if(root->left == NULL) { struct Node *temp = root; root = root->ri