检查二叉树中的子代求和属性

标签 c binary-tree

Childer Sum 属性表示对于每个节点,数据值必须等于左子节点和右子节点的数据值之和。 我已经实现了一个递归函数,它检查二叉树是否满足属性。但代码为每棵树返回 1。 请帮忙看看逻辑是否有问题? :) 这是函数

   int child_sum(struct tree *node)

    {
      if(node==NULL)
        {
          return 0;

       }

if(node->left!=NULL && node->right!=NULL)
        {
      if(node->data=node->left->data+node->right->data)
      {
      return 1;
        }
       }

  return child_sum(node->left) && child_sum(node->right);
}

最佳答案

if(node->data=node->left->data+node->right->data) 应该是 if(node->data==node->left ->数据+节点->右->数据)

注意==。在你的例子中,它是赋值(=),它总是正确的。

关于检查二叉树中的子代求和属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18842428/

相关文章:

c - 在本地声明二维数组并以非常量大小存储在堆上

java - 我的二叉树添加节点是否正确?

java - 合并两个二叉树

c++ - 如何在 gdb 中保存设置?

c++ - 当 C 和 C++ 中严格要求内存释放时?

c - %r 在内核 printf 格式中意味着什么?

c - Azure Functions - 应用程序服务计划(间歇性缓慢调用)

c - 在 C 中动态构建二叉树时指针分配的问题

matlab - 如何在matlab中实现二叉树

python - Python 中的二叉树大小函数