老师,这个解题思路可以吗

来源:6-4 队列的典型应用 Binary Tree Level Order Traversal

慕数据2503897

2019-09-28

ArrayList<ArrayList > Print(TreeNode pRoot) {
ArrayList<ArrayList> arrayLists = new ArrayList<ArrayList>();
if (pRoot==null) {
return arrayLists;
}
Queue queue = new LinkedList();
queue.add(pRoot);
while (!queue.isEmpty()) {
ArrayList arrayList = new ArrayList();
int count = queue.size();
for (int i = 0; i < count; i++) {
if (queue.peek().left!=null) {
queue.add(queue.peek().left);
}
if (queue.peek().right!=null) {
queue.add(queue.peek().right);
}
arrayList.add(queue.poll().val);
}
arrayLists.add(arrayList);
}
return arrayLists;
}

写回答

2回答

liuyubobobo

2019-09-28

抱歉,我没有理解你的问题,具体是指什么思路?


为什么你要问可以吗?你的疑问的点在哪里?


另外,对于 Leetcode 上的问题,如果附代码的话,请附上可以直接在 Leetcode 上运行的代码,谢谢。

0
0

慕数据2503897

提问者

2019-09-28

看了老师的代码,好像是给每个节点加了行的标示

0
1
渣渣欣
你应该先把节点对应的数字加到list再去取左右节点 class Solution { public List> levelOrder(TreeNode root) { Deque q = new LinkedList(); List> result=new ArrayList>(); if(root==null) return result; q.add(root); while(!q.isEmpty()){ List list=new ArrayList<>(); int i=q.size(); for(int j=0;j
2019-11-22
共1条回复

玩转算法面试-- Leetcode真题分门别类讲解

课程配套大量BAT面试真题,高频算法题解析,强化训练

7408 学习 · 1150 问题

查看课程