给定一棵树,怎么判断它的所有叶子节点都在同一层,这种情况应该是完全二叉树的一种特例,如下图:
如果去掉节点6的话,它是一棵完全二叉树,但是所有的叶子节点不在同一层,下面是层次遍历的一种方法:
#include<iostream>
#include<vector>
using namespace std;
typedef struct tree_node_s {
int value;
struct tree_node_s* lchild;
struct tree_node_s* rchild;
}tree_node_t;
tree_node_t* createNode(int value) {
tree_node_t* node = (tree_node_t*)malloc(sizeof(tree_node_t));
node->value = value;
node->lchild = NULL;
node->rchild = NULL;
return node;
}
bool is_complete_bin_tree(tree_node_t* root) {
int cur = 0;
int last = 0;
int count = 0;
int node_has_child