Binary Tree Level Order Traversal
生活随笔
收集整理的這篇文章主要介紹了
Binary Tree Level Order Traversal
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Given a binary tree, return the?level order?traversal of its nodes' values. (ie, from left to right, level by level).
ExampleGiven binary tree?{3,9,20,#,#,15,7},
3/ \9 20/ \15 7?
return its level order traversal as:
[[3],[9,20],[15,7] ] 分析: 用兩個ArrayList,一個保存當前這行所有的Node, 然后另一個數組保存下一行所有的nodes. 1 /** 2 * Definition of TreeNode: 3 * public class TreeNode { 4 * public int val; 5 * public TreeNode left, right; 6 * public TreeNode(int val) { 7 * this.val = val; 8 * this.left = this.right = null; 9 * } 10 * } 11 */ 12 13 14 public class Solution { 15 /** 16 * @param root: The root of binary tree. 17 * @return: Level order a list of lists of integer 18 */ 19 public ArrayList<ArrayList<Integer>> levelOrder(TreeNode root) { 20 ArrayList<ArrayList<Integer>> allLists = new ArrayList<>(); 21 if (root == null) return allLists; 22 23 ArrayList<Integer> nums = new ArrayList<>(); 24 ArrayList<TreeNode> list1 = new ArrayList<>(); 25 ArrayList<TreeNode> list2 = new ArrayList<>(); 26 27 list1.add(root); 28 29 while(list1.size() != 0) { 30 for (TreeNode node : list1) { 31 nums.add(node.val); 32 if (node.left != null) list2.add(node.left); 33 if (node.right != null) list2.add(node.right); 34 } 35 list1.clear(); 36 allLists.add(new ArrayList<Integer>(nums)); 37 nums.clear(); 38 ArrayList<TreeNode> temp = list1; 39 list1 = list2; 40 list2 = temp; 41 } 42 return allLists; 43 } 44 }?
?
轉載于:https://www.cnblogs.com/beiyeqingteng/p/5649664.html
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的Binary Tree Level Order Traversal的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 给大忙人看的Java核心技术笔记(8、S
- 下一篇: asp.net 二级域名(路由方式实现)