常考数据结构与算法:求二叉树的层序遍历
生活随笔
收集整理的這篇文章主要介紹了
常考数据结构与算法:求二叉树的层序遍历
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目描述
給定一個二叉樹,返回該二叉樹層序遍歷的結果,(從左到右,一層一層地遍歷)
例如:
給定的二叉樹是{3,9,20,#,#,15,7},
該二叉樹層序遍歷的結果是
[
[3],
[9,20],
[15,7]
]
?
做完這道題,可以繼續做https://blog.csdn.net/m0_37564426/article/details/114397289(常考數據結構與算法:二叉樹的之字形層序遍歷)
?
?
示例1
輸入
{1,2}返回值
[[1],[2]]示例2
輸入
{1,2,3,4,#,#,5}返回值
[[1],[2,3],[4,5]]?
import java.util.ArrayList;public class LevelOrderMe {public static void main(String[] args) {ArrayList<ArrayList<Integer>> arrayLists = new ArrayList<>();}ArrayList<ArrayList<Integer>> arrayLists = new ArrayList<>();/**** @param root TreeNode類* @return int整型ArrayList<ArrayList<>>*/public ArrayList<ArrayList<Integer>> levelOrder (TreeNode root) {if(null == root){return arrayLists;}levelOrder(root,0);return arrayLists;}private void levelOrder (TreeNode root, int level) {if(root == null){return;}if(arrayLists.size() == level){ArrayList arr = new ArrayList();arr.add(root.val);arrayLists.add(arr);}else{ArrayList arr = arrayLists.get(level);arr.add(root.val);}if(null != root.left){levelOrder(root.left,level+1);}if(null != root.right){levelOrder(root.right,level+1);}} }class TreeNode {int val;TreeNode left;TreeNode right;TreeNode(int x) { val = x; } }?
總結
以上是生活随笔為你收集整理的常考数据结构与算法:求二叉树的层序遍历的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jvm:运行时数据区
- 下一篇: 常考数据结构与算法:找到字符串的最长无重