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

]

confused what "{1,#,2,3}" means? > read more on how binary tree is serialized on OJ.

OJ‘s Binary Tree Serialization:

The serialization of a binary tree follows a level order traversal, where ‘#‘ signifies a path terminator where no node exists below.

Here‘s an example:

1

/

2 3

/

4

5

The above binary tree is serialized as "{1,2,3,#,#,4,#,#,5}".

?

就是按照层数来输出树。思路分为三步,先拿到树的最大层数len,然后再写一个拿指定层的各元素的函数,最后按题目要求写一个返回vector<vector<int>>的函数,里面用一个循环来多次调用之前那个函数,好了,题解如下:

/**

* 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>> temp;

????????int len = MaxDepth(root);

?

?

????????for (int i = len - 1; i >= 0; i--)

????????{

????????????vector<int> level;

????????????getElement(level, 0, i, root);

?

????????????temp.push_back(level);

????????????level.clear();

????????}

?

????????return temp;

?

????}

?

????int MaxDepth(TreeNode *temp)

????{

????????if (temp == NULL)

????????????return 0;

????????else

????????{

????????????int aspros = MaxDepth(temp->left);

????????????int defteros = MaxDepth(temp->right);

????????????return 1 + (aspros>defteros ? aspros : defteros);

????????}

????}

?

????void getElement(vector<int> &level, int
count, int
len, TreeNode *root)

????{

????????if (root != NULL)

????????{

????????????if (count == len)

????????????{

????????????????level.push_back(root->val);

????????????}

????????????getElement(level, count + 1, len, root->left);

????????????getElement(level, count + 1, len, root->right);

????????}

????}

};

?

因为题目要求是要从底部向上输出,所以在主函数的for循环里用了倒序。

这次的blog用word发布,测试一下。

时间: 2024-08-09 22:03:15

[leetcode] 7. 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 trave

Leetcode 树 Binary Tree Level Order Traversal II

本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie Binary Tree Level Order Traversal II Total Accepted: 10080 Total Submissions: 32610 Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from left to right, l

leetCode 107. Binary Tree Level Order Traversal II 二叉树层次遍历反转

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

Java for LeetCode 107 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 trave

leetcode No107. Binary Tree Level Order Traversal II

Question: 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 l

(二叉树 BFS) leetcode 107. 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,null,null,15,7], 3 / 9 20 / 15 7 return its bottom-up level order

Java [Leetcode 107]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

leetCode 107.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 trave

leetcode 107. 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 traver