Проблемы обхода порядка на уровне двоичного дереваJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Проблемы обхода порядка на уровне двоичного дерева

Сообщение Anonymous »


По заданному корню двоичного дерева возвращается порядок прохождения уровней значений его узлов. (т. е. слева направо, уровень за уровнем).

В чем проблема со следующей реализацией?
Как это исправить?
public List levelOrder4(TreeNode root) {
List result = new ArrayList();

// edge case check
if(root == null) return result;

// use queue to store nodes
Queue queue = new LinkedList();
queue.add(root);

// process nodes level by level
while(!queue.isEmpty()) {

List level = new ArrayList();

for(int i = 0; i < queue.size(); i++) {
TreeNode node = queue.poll();
level.add(node.val);

if(node.left != null) queue.add(node.left);
if(node.right != null) queue.add(node.right);
}
result.add(level);
}
return result;
}


Подробнее здесь: https://stackoverflow.com/questions/797 ... l-problems
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»