美文网首页
剑指32-1

剑指32-1

作者: vaisy | 来源:发表于2022-03-30 15:55 被阅读0次

从上到下,从左到右打印二叉树:

 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };

本质是要求广搜,以


二叉树示意图

为例,结果应当是1,2,3,4,5
过程如下:
初始队列【1】
1输出,1的两个儿子2和3加入;【2,3】
2出队,2的儿子4加入;【3,4】
3出队,3的儿子5加入;【4,5】
4出队,5出队,结束。

C++的队列通常是用queue实现;

    vector<int> levelOrder(TreeNode* root) {
        vector<int> res={};
        if (root==NULL)
            return res;
        queue<TreeNode*>que;
        que.push(root);
        while(!que.empty()){
            TreeNode* x=que.front();
            if(x->left)
                que.push(x->left);
            if(x->right)
            que.push(x->right);
            res.push_back(x->val);
            que.pop();
        }
        return res;
    }

go语言的切片实现

func levelOrder(root *TreeNode) []int {
    var res [] int
    if (root==nil){
        return res
    }
    que:= []*TreeNode{root}
    cnt:=0
    for(cnt<len(que)){
        x:=que[cnt]
        que[cnt]=nil
        res=append(res,x.Val)
        if(x.Left!=nil){
            que=append(que,x.Left)
        }
        if(x.Right!=nil){
            que=append(que,x.Right)
        }
        cnt++
    }
    return res
}

go语言的list容器实现:

func levelOrder(root *TreeNode) []int {
    var res [] int
    if (root==nil){
        return res
    }
    que:=list.New()
    que.PushBack(root)
    for(que.Len()!=0){
        x:=que.Front().Value.(*TreeNode)
        res=append(res,x.Val)
        if(x.Left!=nil){
            que.PushBack(x.Left)
        }
        if(x.Right!=nil){
            que.PushBack(x.Right)
        }
        que.Remove(que.Front())
    }
    return res
}

相关文章

  • 剑指32-1

    从上到下,从左到右打印二叉树: 本质是要求广搜,以 为例,结果应当是1,2,3,4,5过程如下:初始队列【1】1输...

  • 剑指

    遥望中原九点烟,风云直上七重天。 今朝再向江湖去,一剑流星谁比肩? 2011.10(1488)

  • 剑指

    1. 二维数组中查找 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照...

  • 全网最全剑指offer题目解答

    【剑指offer】Java版代码(完整版) 【剑指offer】1-10题 【剑指offer】11-20题 【剑指o...

  • 泽平 的ScalersTalk第七轮新概念朗读持续力训练Day

    练习材料: Lesson 32-1 Galileo reborn In his ownlifetime Galil...

  • 剑指offer

    第一题:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,...

  • 剑指BAT

    Android工作5年半了,一毕业就开始做这行。在现在这家公司工作了3年整,最近有换工作的打算,所以在猎聘...

  • 《剑指offer》

    4.调整数组顺序使奇数位于偶数前面 题目描述:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇...

  • 气剑指

    “聚气于指尖,凝其成剑,利可断金。”牢头对身边的狱卒说。 只见牢头举起的右手指尖逐渐变红,转而变白,隐隐发出音量很...

  • 剑指offer

    二维数组中查找数在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到...

网友评论

      本文标题:剑指32-1

      本文链接:https://www.haomeiwen.com/subject/zezijrtx.html