二叉树的节点删除分为三种情况: 1.删除的节点没有子节点,直接删除即可 2. 删除的节点有一个子节点,直接用子节点替换既可以 3.删除的节点有两个子节点. 对于第三种情况,一般是不删除这个节点,而是删除左子树中最大的值的节点,并用这个值替换原先应该被删除的节点.左子树的最大节点只可能有一个或者没有子节点,所以删除很方便. //删除节点,返回指向修改过的节点的指针 TREE_NODE* deleteNode(TREE_TYPE value, TREE_NODE *tree) { TREE_NODE