Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- struct tnode *deletenode(struct tnode *p, int i) {
- /* end of tree */
- if (p == NULL) {
- return NULL;
- /* node found, delete */
- } else if (p -> content == i) {
- /* case 1: leaf */
- if (p -> left == NULL && p -> right == NULL) {
- printf("node is leaf");
- free(p);
- return NULL;
- /* case 2 with children*/
- } else {
- struct tnode *q;
- q = addtree(p -> right, p -> left);
- free(p);
- return q;
- }
- /* navigate to node */
- } else if (p -> content <= i) {
- p -> right = deletenode(p -> right, i);
- return p;
- } else {
- p -> left = deletenode(p -> left, i);
- return p;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement