力扣:655. 输出二叉树(详细解答)

慈云数据 2024-03-15 技术支持 58 0

655.输出二叉树

力扣:655. 输出二叉树(详细解答)
(图片来源网络,侵删)

虽然我们可以知道这一题的大致思想可以利用 深度优先搜索,但还是有很大细节。

题目中有这样一段:

力扣:655. 输出二叉树(详细解答)
(图片来源网络,侵删)
  • 树的 高度 为 height ,矩阵的行数 m 应该等于 height + 1 。
  • 矩阵的列数 n 应该等于 2 的(height+1)次方 - 1 

     不难看出,行数应表示 一颗满二叉树的层数,而列数应表示 满二叉树的结点个数 .

    而题目中 的高度显然不是 从根节点开始计算,也即为其子树的高度。

    比如一颗高度为 3(包括根节点)的满二叉树,的结点个数为 7.而题目中根据其公式:

    2 ^ (height + 1) -1 = 7     解得height = 2. 也就是指其子树的高度。

    搞清楚这一点就好办很多。

    解题思路:

    1.  首先我们需要获取高度,根据高度来设置字符串矩阵的 行 与 列

    2.  接着 利用循环将这个字符串矩阵全部用 "" 进行填充。

    3.  根据结点是否存在,再利用set()方法将结点的val值替换掉 "" 。

    代码 如下:

    class Solution {

        // private int he = 0;

        public list printTree(TreeNode root) {

            int h = getHeight(root);

            int m = h ;   //行数

            int n = (1

微信扫一扫加客服

微信扫一扫加客服

点击启动AI问答
Draggable Icon