当前位置: 代码迷 >> 综合 >> leetcode_116 Binary Tree Level Order Traversal II
  详细解决方案

leetcode_116 Binary Tree Level Order Traversal II

热度:93   发布时间:2024-02-07 11:48:37.0

题目:

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,null,null,15,7],

3/ \9  20/  \15   7

 

return its bottom-up level order traversal as:

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

广度优先遍历BFS后,再对res进行翻转

代码如下:

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode() : val(0), left(nullptr), right(nullptr) {}*     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}*     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {
public:vector<vector<int>> levelOrderBottom(TreeNode* root) {vector<int> level;vector<vector<int> > res;if(root == NULL)return res;queue<TreeNode*> Q;Q.push(root);while(!Q.empty()){int len  = Q.size();for(int i = 0; i <len; i++){TreeNode* p = Q.front();Q.pop();level.push_back(p->val);if(p->left)Q.push(p->left);if(p->right)Q.push(p->right);}res.push_back(level);level.clear();}reverse(res.begin(),res.end());return res;}
};

 

 

 

  相关解决方案