#includeusing namespace std;// binary tree nodestruct Node{ int data; Node *left,*right; Node(int x) { data = x; left = right = NULL; }};int height(Node *root){ if (!root) return 0; int hLeft = height(root->left); int hRight = height(root->right); return ((hLeft > hRight) ? (hLeft + 1) : (hRight + 1));}int size(Node *root){ if (!root) return 0; return (size(root->left) + size(root->right) + 1);}// Driver codeint main(){ Node *root = new Node(1); root->left = new Node(3); root->left->left = new Node(2); root->left->right = new Node(1); root->left->right->left = new Node(1); root->right = new Node(-1); root->right->left = new Node(4); root->right->left->left = new Node(1); root->right->left->right = new Node(2); root->right->right = new Node(5); root->right->right->right = new Node(2); int h = height(root); cout << "height = " << h << endl; int s = size(root); cout << "size = " << s << endl; return 0;}
输出结果:
height = 4size = 11