zoukankan      html  css  js  c++  java
  • LeetCode 102 二叉树的层序遍历

    题目描述链接:https://leetcode-cn.com/problems/binary-tree-level-order-traversal/

    解题思路:参考官方题解,解题思路如下:对于二叉树的层序遍历,首先应该考虑到的数据结构便是队列,利用队列现进先出的特性,可以很方便的解决此题。

    (1)根节点入队。

    (2)当队列不为空时,开始如下迭代过程:获取当下队列长度,在当下队列长度控制下开始内层循环,访问该长度下队列的每一个元素,然后出队并扩展该节点(扩展出下一层元素)。当该长度访问完后,即访问完第k层元素。然后开始访问第k+1层元素,并扩展第k+2层元素,一直到队列为空时结束。具体LeetCode下C++代码如下:

    /**
     * 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) {
           queue<TreeNode *>q;//层次遍历所用队列
           vector<vector<int>>res;//保存结果
           if(!root)
              return res;
           q.push(root);
           while(!q.empty()){
               int len=q.size();
               vector<int>temp;
               for(int i=0;i<len;++i){
                   TreeNode *m=q.front();//->val;
                   temp.push_back(m->val);
                   q.pop();
                   if(m->left){
                       q.push(m->left);
                   }
                   if(m->right){
                       q.push(m->right);
                   }
                      
               }
               res.push_back(temp);
           }
    
            return res;   
            
        }
    
    
    
    
    
    };
  • 相关阅读:
    函数定义、调用
    条件语句和循环语句
    eclipse中安装pydev插件出现duplicate location
    编码类型
    除法
    数据类型
    命令和python模式转换
    前言
    SpringMVC_json
    解决eclipse中Tomcat服务器的server location选项不能修改的问题
  • 原文地址:https://www.cnblogs.com/zzw-/p/13289527.html
Copyright © 2011-2022 走看看