?LeetCode刷題實戰(zhàn)107:二叉樹的層次遍歷 II
算法的重要性,我就不多說了吧,想去大廠,就必須要經(jīng)過基礎(chǔ)知識和業(yè)務(wù)邏輯面試+算法面試。所以,為了提高大家的算法能力,這個公眾號后續(xù)每天帶大家做一道算法題,題目就從LeetCode上面選 !
今天和大家聊的問題叫做?二叉樹的層次遍歷 II,我們先來看題面:
https://leetcode-cn.com/problems/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).
題意
解題
class?Solution?{
????public?List<List> levelOrderBottom(TreeNode root) {
????????List<List> levelOrder = new?LinkedList<List >();
????????if?(root == null) {
????????????return?levelOrder;
????????}
????????Queuequeue = new?LinkedList ();
????????queue.offer(root);
????????while?(!queue.isEmpty()) {
????????????Listlevel = new?ArrayList ();
????????????int size = queue.size();
????????????for?(int i = 0; i < size; i++) {
????????????????TreeNode node = queue.poll();
????????????????level.add(node.val);
????????????????TreeNode left = node.left, right = node.right;
????????????????if?(left != null) {
????????????????????queue.offer(left);
????????????????}
????????????????if?(right != null) {
????????????????????queue.offer(right);
????????????????}
????????????}
????????????levelOrder.add(0, level);
????????}
????????return?levelOrder;
????}
}
上期推文:
