[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] ]

这道题是求二叉树从下往上的层次遍历,与Binary Tree Level Order Traversal十分相似,,只是在最后一步将ans反转一下就可以了。 直接贴上代码了:

/** * Definition for binary tree * 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> > ans;queue<TreeNode*> q;if (root == NULL)return ans;q.push(root);int nextCount = 0;int curCount = 1;vector<int> temp;while (!q.empty()){TreeNode* p = q.front();q.pop();temp.push_back(p->val);if (p->left){q.push(p->left);nextCount++;}if (p->right){q.push(p->right);nextCount++;}curCount–;if (!curCount){ans.push_back(temp);temp=vector<int>();curCount = nextCount;nextCount = 0;}}reverse(ans.begin(), ans.end());return ans;}};

在乎的是沿途的风景以及看风景的心情,让心灵去旅行!

[LeetCode]Binary Tree Level Order Traversal II

相关文章:

你感兴趣的文章:

标签云: