编程语言
首页 > 编程语言> > 牛客网-剑指offer[编程题]把二叉树打印成多行 js详解

牛客网-剑指offer[编程题]把二叉树打印成多行 js详解

作者:互联网

在这里插入图片描述
这个就是树的层次遍历,比上一题加了条件的层次遍历还要简单
只有搞清楚了各个数组之间的关系就ok
举例:
在这里插入图片描述
三个数组只有arr中存储节点,其他两个只存储值
以下是数组变化:
arr = [1];
tempArr = [];
temp = 1;
arr = [];
tempArr = [1];
arr = [2];
arr = [2,3]
res = [[1]]
tempArr = [];
temp = 2;
tempArr = [2];
arr = [3];
temp = 3;
tempArr = [2,3];
res = [[1],[2,3]]


/* function TreeNode(x) {
    this.val = x;
    this.left = null;
    this.right = null;
} */
function Print(root)
{
    // write code here
    if(root == null)return [];
    var tempArr = [];
    var arr = [];
    var res = [];
    arr.push(root);
    while(arr.length){
        var len = arr.length;
        tempArr = [];
        for(var i = 0;i < len; i++){
        var temp = arr.shift();
        tempArr.push(temp.val);
        if(temp.left)
            arr.push(temp.left)
        if(temp.right)
            arr.push(temp.right)
      }
        res.push(tempArr);
    }
    return res;
}
kotoriyou 发布了73 篇原创文章 · 获赞 4 · 访问量 4659 私信 关注

标签:tempArr,arr,temp,offer,res,js,push,二叉树,var
来源: https://blog.csdn.net/kotoriyou/article/details/103990038