A Binary Search Tree (BST) is recursively defined as a binary tree which has the following properties:
- The left subtree of a node contains only nodes with keys less than or equal to the node’s key.
- The right subtree of a node contains only nodes with keys greater than the node’s key.
- Both the left and right subtrees must also be binary search trees.
Insert a sequence of numbers into an initially empty binary search tree. Then you are supposed to count the total number of nodes in the lowest 2 levels of the resulting tree.
Input Specification:
Each input file contains one test case. For each case, the first line gives a positive integer N (≤1000) which is the size of the input sequence. Then given in the next line are the N integers in [−1000,1000] which are supposed to be inserted into an initially empty binary search tree.
Output Specification:
For each case, print in one line the numbers of nodes in the lowest 2 levels of the resulting tree in the format:
1 | n1 + n2 = n |
where n1 is the number of nodes in the lowest level, n2 is that of the level above, and n is the sum.
Sample
Input:
1 | 9 |
Output:
1 | 2 + 4 = 6 |
Solution
先建立BST, 建树的同时可以记录节点的层数即最大层数,最后遍历一遍即可
注意:看清题干,本题 The left subtree of a node contains only nodes with keys less than or equal to the node's key.
, 找了半个小时,才发现
代码就很简单了
Code
1 |
|
- 本文标题:1115 Counting Nodes in a BST (30分)
- 本文作者:codeflysafe
- 创建时间:2020-03-12 12:08:11
- 本文链接:https://codeflysafe.github.io/2020/03/12/2020-03-12-1115-Counting-Nodes-in-a-BST-(30分)/
- 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!