Time Limit: 1sec Memory Limit:256MB
Description
实现下述函数,剪去非空二叉树中的所有的叶子节点
void cutLeaves(BinaryNode* &root)
given the following definition:
typedef int T;
struct BinaryNode{
T data; //store data
BinaryNode *left, *right;
BinaryNode(T d, BinaryNode *l=NULL, BinaryNode* r=NULL):data(d), left(l), right(r) {};
};
o(〃’▽’〃)o 中序遍历二叉树即可。
#include <iostream>
using namespace std;
//given the following definition :
/*typedef int T;
struct BinaryNode
{
T data; //store data
BinaryNode *left, *right;
BinaryNode(T d, BinaryNode *l = NULL, BinaryNode* r = NULL) :data(d), left(l), right(r) {};
};*/
void cutLeaves(BinaryNode* &root)
{
if (root != NULL)
{
if (root->left == NULL && root->right == NULL)
{
root = NULL;
return; // Very import! Don't forget it! Think about it.
}
cutLeaves(root->left);
cutLeaves(root->right);
}
}