From 49fcc0351b34c4bde54daf5657d08e853368e177 Mon Sep 17 00:00:00 2001 From: heimoshuiyu Date: Thu, 6 May 2021 16:08:42 +0900 Subject: [PATCH] Assignemnt 2 update if else statement --- assignment2/BST.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/assignment2/BST.c b/assignment2/BST.c index 8174a25..af97f7d 100644 --- a/assignment2/BST.c +++ b/assignment2/BST.c @@ -89,15 +89,13 @@ Node *deleteNode(Node **proot, int x) { delNode = rMin; } - /* delete delNode, freeNode is the one needs to be free */ + /* delete delNode, freeNode is the one needs to be free, + * here delNode will not have two children */ freeNode = *delNode; - if ((*delNode)->left || (*delNode)->right) { - /* one child, freeNode is the one needs to be free */ - if ((*delNode)->left) { - *delNode = (*delNode)->left; - } else if ((*delNode)->right) { - *delNode = (*delNode)->right; - } + if ((*delNode)->left) { + *delNode = (*delNode)->left; + } else if ((*delNode)->right) { + *delNode = (*delNode)->right; } else { /* no child */ *delNode = NULL;