zoukankan      html  css  js  c++  java
  • Leetcode题目:Binary Tree Level Order Traversal

    题目:

    Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, level by level).

    For example:
    Given binary tree {3,9,20,#,#,15,7},

        3
       / 
      9  20
        /  
       15   7
    

    return its level order traversal as:

    [
      [3],
      [9,20],
      [15,7]
    ]

    题目解答:这个题目非常简单,就是二叉树的层次遍历。需要两个整型的临时变量分别记录当前层的节点数目和下一层的节点数目。使用队列来存储这个二叉树节点遍历的先后顺序。

    代码:

    /**
     * Definition for a binary tree node.
     * struct TreeNode {
     *     int val;
     *     TreeNode *left;
     *     TreeNode *right;
     *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
     * };
     */
    class Solution {
    public:
        vector<vector<int> > levelOrder(TreeNode* root) {
            int curnum = 0;
            int childnum = 0;
            vector<vector<int> > res;
            if(root == NULL)
            {
                return res;
            }
            queue<TreeNode *> TreeQueue;
            TreeQueue.push(root);
            curnum = 1;
            while(curnum != 0)
            {
                vector<int> tmp;
                while(curnum != 0)
                {
                    TreeNode *p = TreeQueue.front();
                    tmp.push_back(p -> val);
                   
                    if(p -> left != NULL)
                    {
                        TreeQueue.push(p -> left);
                        childnum++;
                    }
                    if(p -> right != NULL)
                    {
                        TreeQueue.push(p -> right);
                        childnum++;
                    }
                   
                    TreeQueue.pop();
                    curnum--;
                }
                res.push_back(tmp);
                curnum = childnum;
                childnum = 0;
            }
            return res;
        }
    };

  • 相关阅读:
    帝国cms留言表模板修改
    帝国cms内容页模版
    百度竞价中的精确匹配,短语匹配,广泛匹配有什么区别。
    Android打包之多版本、多环境、多渠道
    Jenkins修改默认目录 /root/.jenkins
    Centos挂载硬盘完整图文教程(查看、分区、格式化、挂载)磁盘
    Linux安装mysql后systemctl start mysqld.service不能启动 修改datadir路径后不能启动
    Jenkins版本回滚
    Linux 调整时区与时间同步
    jenkins忘记admin密码的处理方法
  • 原文地址:https://www.cnblogs.com/CodingGirl121/p/5431172.html
Copyright © 2011-2022 走看看