求二叉树层序遍历
题目描述
给定一个二叉树,返回该二叉树层序遍历的结果,(从左到右,一层一层地遍历)
例如:
给定的二叉树是{3,9,20,#,#,15,7},
该二叉树层序遍历的结果是
[
[3],
[9,20],
[15,7]
]
输入:{1,2}
输出:[[1],[2]]
import java.util.*; /* * public class TreeNode { * int val = 0; * TreeNode left = null; * TreeNode right = null; * } */ public class Solution { /** * * @param root TreeNode类 * @return int整型ArrayList> */ public ArrayList> levelOrder (TreeNode root) { // write code here ArrayList > result = new ArrayList >(); if (root == null ){ return result; } Queue queue = new LinkedList (); queue.offer(root); while(!queue.isEmpty()){ ArrayList floor = new ArrayList (); int len = queue.size(); for (int i=0; i ){ TreeNode temp = queue.poll(); floor.add(temp.val); if (temp.left !=null){ queue.offer(temp.left); } if (temp.right !=null){ queue.offer(temp.right); } } result.add(floor); } return result; } }