繁体   English   中英

从二叉树中删除节点

[英]Remove a Node from a binary tree

请帮忙。 我的以下删除功能出了什么问题。 似乎无法弄清楚

我似乎遇到了一个错误:类声明看起来还不错。 主要问题是要使此删除功能起作用

void binaryTree::Remove(int) {
  if (node != NULL)
  {
     Node* tmptr = node;
     int rootdata = node->data;
     /int rSubtree;
  }
  {
  // Case 0- no child
  if (node->lChild == NULL && node->rChild == NULL)
  {
      node = NULL;
      //parent-            //set the parent of the node to NULL
      delete node;
  }
  // has one child
  else if (node->lChild == NULL && node->rChild != NULL)
  {
      node = node->rChild;
      node->rChild = NULL;
      delete node;
  }

  else if (node->lChild != NULL && node->rChild == NULL)
  {
      node = node->lChild;`enter code here`
      node->lChild = NULL;
      delete node;
  }
}

尝试将node = NULLdelete node;交换delete node; 否则,您将尝试删除NULL。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM