美文网首页
二叉树的层次遍历 II

二叉树的层次遍历 II

作者: WAI_f | 来源:发表于2020-07-11 02:10 被阅读0次

题目:

给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)

示例:

输入:
给定二叉树 [3,9,20,null,null,15,7],



返回其自底向上的层次遍历为:
[
[15,7],
[9,20],
[3]
]

解题方法:

典型的广度优先搜索,简单说明一下思路:

  • 创建一个队列,队列的特点就是先进先出,向队列中插入根节点;
  • 取出当前队列中的结点,创建一个vector用来存储取出结点的val值,然后把该结点的左右子节点指针存进队列。
  • 不考虑取出结点的子结点的话,每次取出的结点都在同一层,最后队列清空,把得到的vector反转,就可以得到要求的层次遍历结果。

代码和结果:

/**
 * 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>> levelOrderBottom(TreeNode* root) {
        vector<vector<int>> res;
        if(root==NULL)
            return res;
        queue<TreeNode *> qu;
        qu.push(root);
        while(qu.size())
        {
            vector<int> tp;
            int len=qu.size();
            for(int i=0;i<len;i++)
            {
                TreeNode* ptr=qu.front();
                tp.push_back(ptr->val);
                if(ptr->left) qu.push(ptr->left);
                if(ptr->right) qu.push(ptr->right);
                qu.pop();
            }
            res.push_back(tp);
        }
        reverse(res.begin(),res.end());
        return res;
    }
};
运行结果:

原题链接:https://leetcode-cn.com/problems/binary-tree-level-order-traversal-ii/

相关文章

  • LeetCode 107. 二叉树的层次遍历 II

    107. 二叉树的层次遍历 II 给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点...

  • 107. 二叉树的层次遍历 II

    107. 二叉树的层次遍历 II 给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点...

  • 107. 二叉树的层次遍历 II

    107. 二叉树的层次遍历 II 给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点...

  • 二叉树的蛇形层次遍历(LeetCode.103)

    题目 解析 首先参考二叉树的层次遍历层次遍历二叉树(LeetCode--102二叉树的层次遍历)[https://...

  • 二叉树的层次遍历ii

    leetcode的层次遍历ii

  • 二叉树遍历

    二叉树遍历(非递归写法) 先序遍历 中序遍历 后序遍历 层次遍历 给定一个二叉树,返回其按层次遍历的节点值。 (即...

  • 二叉树的基本算法

    一、二叉树的递归遍历 二、二叉树的层次遍历 二叉树的层次遍历是指二叉树从上到下,从左到右遍历数据。同一层中的节点访...

  • 二叉树的层次遍历

    三道层次遍历题,同一个模板,这边用到的是两个队列 二叉树的层次遍历 LeetCode题目地址 二叉树的层次遍历 加...

  • LeetCode–二叉树的层次遍历 II

    LeetCode–二叉树的层次遍历 II 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验...

  • 【2019-08-21】leetcode(141-150)

    141、环形链表 142、环形链表II 143、重排链表 144、二叉树的前序遍历 145、二叉树后序遍历 146...

网友评论

      本文标题:二叉树的层次遍历 II

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