思路
用Queue保存一行结点,每次遍历一整行
代码
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.Queue;
public class Solution {
ArrayList<ArrayList<Integer>> Print(TreeNode pRoot){
ArrayList<ArrayList<Integer>> result = new ArrayList<>();
if(pRoot==null){
return result;
}
Queue<TreeNode> q = new LinkedList<>();
q.add(pRoot);
while (!q.isEmpty()) {
ArrayList<Integer> temp = new ArrayList<>();
Queue<TreeNode> tempQ = new LinkedList<>();
while (!q.isEmpty()) {
TreeNode t = q.poll();
temp.add(t.val);
if(t.left != null){
tempQ.offer(t.left);
}
if(t.right != null){
tempQ.offer(t.right);
}
}
result.add(temp);
q = tempQ;
}
return result;
}
} 
京公网安备 11010502036488号