日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Binary Tree Level Order Traversal

發布時間:2025/3/21 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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).

Example

Given 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的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。