6-1 二叉树度为2的结点求和 (16 分)
实现一个函数,返回二叉树bt
中度为2的结点的数值之和。
函数接口定义:
int sumDCNodes(struct BinTree *bt);
其中二叉树定义如下:
struct BinTree{
int data;
struct BinTree *left;
struct BinTree *right;
};
题目保证二叉树中所有元素均为整数且各元素之和在整型范围内。
裁判测试程序样例:
#include "stdio.h"
#include "stdlib.h"
struct BinTree{
int data;
struct BinTree *left;
struct BinTree *right;
};
struct BinTree* createNode(int item){ //创建结点
/* 函数实现细节省略*/
}
struct BinTree* findNode(struct BinTree *bt, int item){ //查找结点
/* 函数实现细节省略*/
}
int insert(struct BinTree *bt, int parent, int dir, int item){ //插入结点
/* 实现细节仅供参考 */
struct BinTree *tmp;
tmp = findNode(bt, parent);
if(!tmp) return 0;
if(dir == 0){
if(tmp->left) return 0;
tmp->left = createNode(item);