给定一颗二叉树的头结点,按照下面的规则实现二叉树的边界节点的逆时针打印。
- 头结点的边界节点
- 叶子节点为边界节点
- 如果节点在所在层的最左边或者最右边,那么也是边界节点
比如下图这棵树:
程序流程
1.得到二叉树上每一层最左和最右的节点,用上图的例子来说,这个记录过程如下:
- | 最左节点 | 最右节点 |
---|---|---|
第一层 | 1 | 1 |
第二层 | 2 | 2 |
第三层 | 4 | 6 |
第四层 | 7 | 10 |
第五层 | 11 | 12 |
第六层 | 13 | 16 |
2. 从上到下打印所有层找那个的最左节点,对上面的例子来讲,打印的顺序为:1,2,4,7,11,13。
3. 然后前序遍历二叉树,打印那些不属于某一层的最左或者最右的节点,但同时又是叶子节点,按照上面的例子来