【剑指offer】面试题32 - II:从上到下打印二叉树 II(Java)
從上到下按層打印二叉樹,同一層的節點按從左到右的順序打印,每一層打印到一行。
?
例如:
給定二叉樹:?[3,9,20,null,null,15,7],
? ? 3
? ?/ \
? 9 ?20
? ? / ?\
? ?15 ? 7
返回其層次遍歷結果:
[
? [3],
? [9,20],
? [15,7]
]
?
提示:
節點總數 <= 1000
代碼:
/**
?*?Definition?for?a?binary?tree?node.
?*?public?class?TreeNode?{
?*?????int?val;
?*?????TreeNode?left;
?*?????TreeNode?right;
?*?????TreeNode(int?x)?{?val?=?x;?}
?*?}
?*/
class?Solution?{
????public?List<List<Integer>>?levelOrder(TreeNode?root)?{
????????List<List<Integer>>?result?=?new?ArrayList<List<Integer>>();
????????List<Integer>?list?=?new?ArrayList<Integer>();
????????Deque<TreeNode>?deque?=?new?LinkedList<>();
????????if(root==null)??return?result;
????????TreeNode?flag?=?root;
????????deque.offer(root);
????????while(!deque.isEmpty())
????????{
????????????TreeNode?p?=?deque.poll();
????????????list.add(p.val);
????????????if(p.left!=null)
????????????{
????????????????deque.offer(p.left);
????????????}
????????????if(p.right!=null)
????????????{
????????????????deque.offer(p.right);
????????????}
????????????if(flag==p)
????????????{
????????????????flag?=?deque.peekLast();
????????????????result.add(list);
????????????????list?=?new?ArrayList<>();
????????????}
????????}
????????return?result;
????}
}
總結
以上是生活随笔為你收集整理的【剑指offer】面试题32 - II:从上到下打印二叉树 II(Java)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【剑指offer】面试题48. 最长不含
- 下一篇: Neo4j 图创建1 以BiliBili