专栏首页给永远比拿愉快Leetcode: Binary Tree Level Order Traversal II

Leetcode: Binary Tree Level Order Traversal II

题目:

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

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

    3
   / \
  9  20
    /  \
   15   7

return its bottom-up level order traversal as:

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

分析:

这道题目跟上道题目很相似 Leetcode: Binary Tree Level Order Traversal ,唯一不同的就是返回结果是从子叶节点到根节点,所以我们只需要将结果翻转下就好了!

参考代码:

/**
 * Definition for binary tree
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };
 */
class Solution
{
private:
    void visit(TreeNode *node, int depth, vector<vector<int>> &result)
    {
    	if (node == NULL)
    	{
    		return;
    	}
    
    	if (result.size() > depth)
    	{
    		result[depth].push_back(node->val);
    	}
    	else
    	{
    		vector<int> level;
    		level.push_back(node->val);
    		result.push_back(level);
    	}
    
    	visit(node->left, depth + 1, result);
    	visit(node->right, depth + 1, result);
    }
public:
    vector<vector<int>> levelOrderBottom(TreeNode *root)
    {
    	vector<vector<int>> result;
    	visit(root, 0, result);
        //就只有最后一句不一样,返回值对vector做了一个reverse
    	return vector<vector<int>>(result.rbegin(), result.rend());
    }
};

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Leetcode: Binary Tree Level Order Traversal

    Given a binary tree, return the level order traversal of its nodes' values. (ie,...

    卡尔曼和玻尔兹曼谁曼
  • Leetcode: Subsets

    题目: Given a set of distinct integers, S, return all possible subsets.

    卡尔曼和玻尔兹曼谁曼
  • Leetcode: Pascal's Triangle II

    题目: Given an index k, return the kth row of the Pascal’s triangle.

    卡尔曼和玻尔兹曼谁曼
  • Leetcode: Binary Tree Level Order Traversal

    Given a binary tree, return the level order traversal of its nodes' values. (ie,...

    卡尔曼和玻尔兹曼谁曼
  • Mysql5.5——xtrabackup主从同步

    192.168.102.128 linux-node1.example.com (主)

    江小白
  • Tendermint: 什么是 ABCI (应用区块链接口)

    区块链应用接口(Application BlockChain Interface,ABCI)允许应用的拜占庭容错复制可以由任意一种编程语言编写。

    用户1558438
  • 结构型模式:装饰模式

    姓名 :装饰模式 英文名 :Decorator Pattern 价值观 :人靠衣装,类靠装饰 个人介绍 : Attach additional responsi...

    LieBrother
  • Kubernetes基础:查看状态、管理服务

    在Kubernetes中创建一个Deployment 部署就会在Node上创建一个Pod,Pod是Kubernetes中对于一组容器以及与容器相关的资源的集合。...

    大江小浪
  • IDA_基本数据类型之常量查看

    ****************************************************************************

    阿婆
  • 在线学习方法概述

    推荐系统算法常常用到逻辑回归算法,而传统的批量学习算法如 SGD 无法应对大规模、高维的数据集和实时数据流。为了解决这个问题,在线最优化算法如 TG [1]、F...

    刘笑江

扫码关注云+社区

领取腾讯云代金券