Binary Tree Level Order Traversal II leetcode java
生活随笔
收集整理的這篇文章主要介紹了
Binary Tree Level Order Traversal II leetcode java
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
題目:
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},
return its bottom-up level order traversal as:
題解:
這道題跟前面一道是一樣的。。
只是存到res的結(jié)果順序不一樣罷了。
之前那個(gè)就是循序的存
這道題就是每得到一個(gè)行結(jié)果就存在res的0位置,這樣自然就倒序了。
代碼如下:
?1?????public?ArrayList<ArrayList<Integer>>?levelOrderBottom(TreeNode?root)?{
?2?????????ArrayList<ArrayList<Integer>>?res?=?new?ArrayList<ArrayList<Integer>>();??
?3?????????if(root?==?null)??
?4?????????????return?res;
?5?????????
?6?????????LinkedList<TreeNode>?queue?=?new?LinkedList<TreeNode>();??
?7?????????queue.add(root);
?8?????????
?9?????????int?curLevCnt?=?1;??
10?????????int?nextLevCnt?=?0;??
11?????????
12?????????ArrayList<Integer>?levelres?=?new?ArrayList<Integer>();??
13????????
14?????????while(!queue.isEmpty()){??
15?????????????TreeNode?cur?=?queue.poll();??
16?????????????curLevCnt--;??
17?????????????levelres.add(cur.val);??
18?????????????
19?????????????if(cur.left?!=?null){??
20?????????????????queue.add(cur.left);??
21?????????????????nextLevCnt++;??
22?????????????}??
23?????????????if(cur.right?!=?null){??
24?????????????????queue.add(cur.right);??
25?????????????????nextLevCnt++;??
26?????????????}??
27???????????????
28?????????????if(curLevCnt?==?0){??
29?????????????????curLevCnt?=?nextLevCnt;??
30?????????????????nextLevCnt?=?0;??
31?????????????????res.add(0,levelres);??//insert?one?by?one?from?the?beginning
32?????????????????levelres?=?new?ArrayList<Integer>();??
33?????????????}??
34?????????}??
35?????????return?res;??
36?????}
轉(zhuǎn)載于:https://www.cnblogs.com/springfor/p/3891392.html
總結(jié)
以上是生活随笔為你收集整理的Binary Tree Level Order Traversal II leetcode java的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HDU 4539郑厂长系列故事――排兵布
- 下一篇: JTable的应用