LeetCode 题解(222) : Binary Tree Level Order Traversal II
来源:互联网 发布:泰州学院教务网络系统 编辑:程序博客网 时间:2024/05/18 02:48
题目:
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]]题解:
按正常顺序遍历完后reverse结果。
C++版:
/** * 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>> results; if(root == NULL) return results; queue<TreeNode*> q1, q2; q1.push(root); while(q1.size() != 0) { vector<int> result; while(q1.size() != 0) { TreeNode* cur = q1.front(); q1.pop(); result.push_back(cur->val); if(cur->left != NULL) q2.push(cur->left); if(cur->right != NULL) q2.push(cur->right); } results.push_back(result); q1 = q2; queue<TreeNode*> empty; swap(q2, empty); } reverse(results.begin(), results.end()); return results; }};
Java版:
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */import java.util.Collections;public class Solution { public List<List<Integer>> levelOrderBottom(TreeNode root) { List<List<Integer>> results = new LinkedList<List<Integer>>(); if(root == null) return results; Queue<TreeNode> q1 = new LinkedList<>(); Queue<TreeNode> q2 = new LinkedList<>(); q1.add(root); while(q1.size() != 0) { List<Integer> result = new ArrayList<>(); while(q1.size() != 0) { TreeNode cur = q1.poll(); result.add(cur.val); if(cur.left != null) q2.add(cur.left); if(cur.right != null) q2.add(cur.right); } results.add(result); q1.addAll(q2); q2.clear(); } Collections.reverse(results); return results; }}
Python版:
# Definition for a binary tree node.# class TreeNode(object):# def __init__(self, x):# self.val = x# self.left = None# self.right = Noneimport copyclass Solution(object): def levelOrderBottom(self, root): """ :type root: TreeNode :rtype: List[List[int]] """ if root == None: return [] results = [] #s = [[root.val]] q1 = [] q2 = [] q1.append(root) while len(q1) != 0: temp = [] for i in q1: temp.append(i.val) if i.left != None: q2.append(i.left) if i.right != None: q2.append(i.right) results.append(temp) q1 = copy.copy(q2) q2 = [] results.reverse() return results
0 0
- LeetCode 题解(222) : Binary Tree Level Order Traversal II
- LeetCode题解:Binary Tree Level Order Traversal I and II
- LeetCode题解:Binary Tree Level Order Traversal II
- Leetcode题解 107. Binary Tree Level Order Traversal II
- LeetCode 107 Binary Tree Level Order Traversal II题解
- [题解][LeetCode][Binary Tree Level Order Traversal]
- LeetCode题解:Binary Tree Level Order Traversal
- LeetCode题解:Binary Tree Level Order Traversal
- LeetCode: Binary Tree Level Order Traversal II
- [LeetCode]Binary Tree Level Order Traversal II
- LeetCode Binary Tree Level Order Traversal II
- [Leetcode] Binary Tree Level Order Traversal II
- LeetCode Binary Tree Level Order Traversal II
- [LeetCode] Binary Tree Level Order Traversal II
- 【leetcode】Binary Tree Level Order Traversal II
- [LeetCode]Binary Tree Level Order Traversal II
- [Leetcode]Binary Tree Level Order Traversal II
- [leetcode]Binary Tree Level Order Traversal II
- hihoCoder #1227 : The Cats' Feeding Spots
- EPOLL在ET模式下会被触发多次么?
- Intent中的四个重要属性——Action、Data、Category、Extras
- android之ListFragment
- poj3294Life Forms
- LeetCode 题解(222) : Binary Tree Level Order Traversal II
- c#中如何截取Windows消息来触发自定义事件
- JS 跨域资源共享 -- Ajax CORS / img ping / jsonp
- LCD错误
- Mysql触发器 存储
- 大数据的单词统计
- Calendar 类的 add() 和roll方法详解
- CyclicBarrier
- Javascript浅谈之表达式和语句的区别