1. 程式人生 > 其它 >刷題-Leetcode-107. 二叉樹的層序遍歷 II

刷題-Leetcode-107. 二叉樹的層序遍歷 II

技術標籤:刷題leetcode二叉樹

107. 二叉樹的層序遍歷 II

題目連結

來源:力扣(LeetCode)
連結:https://leetcode-cn.com/problems/binary-tree-level-order-traversal-ii/

題目描述

給定一個二叉樹,返回其節點值自底向上的層序遍歷。 (即按從葉子節點所在層到根節點所在的層,逐層從左向右遍歷)

例如:
給定二叉樹 [3,9,20,null,null,15,7],

3

/
9 20
/
15 7
返回其自底向上的層序遍歷為:

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

題目分析

和102題很像

/**
 * 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>> result; if(root == nullptr){ return result; } queue<TreeNode*> queue; queue.push(root); int n;//存放每層節點數 while
(!queue.empty()){ vector<int> tmp; n = queue.size(); while(n--){ root = queue.front();//注意放while裡面 if(root->left) queue.push(root->left); if(root->right) queue.push(root->right); tmp.
push_back(root->val); queue.pop(); } result.push_back(tmp); } reverse(result.begin(),result.end()); return result; } };