删除满足属性的节点

时间:2015-01-24 12:38:05

标签: algorithm tree binary-tree

我想编写一个函数,该函数将指针A作为参数,该指针指向模拟(不一定是二进制)有序树的二叉树树的根。 我们认为树的每个节点都保存了必要的指针LCRS,整数number。该函数应该遍历有序树的所有节点,对于每个节点,它应该执行以下操作:

如果有序树上你最右边的孩子是一片叶子,那么这个孩子应该被删除。

这是否意味着我们得到了如下的二叉树?

enter image description here

然后相应的有序树将如下,我们要删除节点C和G?

enter image description here

或者我明白错了吗?

编辑:我写了以下算法:

Algorithm(node *A){
  node *p=A,*q=NULL;
  if (p==NULL) return;
  if (p->LC!=NULL){
      q=p->LC;
      if (q->RS!=NULL and q->RS->RS==NULL and q->RS->LC==NULL){
          q->RC=NULL;
      }
      if (q->LC!=NULL) Algorithm(q);
   }
   Algorirthm(q->RC);
}

你能告诉我它是否正确吗?

0 个答案:

没有答案