Size: a a a

2020 February 07

С

Славик in pro.flood
то ли дело джаваскрипт хехехе
источник

С

Славик in pro.flood
когда всю жизнь бьешь по пробелу левым большим пальцем и тут пришлось внезапно переучиться на правый, оказывается, это не так легко
источник

LV

Lena Varlamova in pro.flood
Славик
в первой попытке не учел, что root может быть null
как ршеал?
источник

С

Славик in pro.flood
ну обходом
источник

С

Славик in pro.flood
брал все ноды на текущем уровне
источник

LV

Lena Varlamova in pro.flood
Славик
ну обходом
как созранял конец уровня?
источник

С

Славик in pro.flood
единственное, reverse делаю через раз
источник

С

Славик in pro.flood
если бы стэк умел добавлять вначало и этого бы избежал, пожалуй
источник

С

Славик in pro.flood
даже не стек, а список
источник

С

Славик in pro.flood
Lena Varlamova
как созранял конец уровня?
я замутил стек в виде списка, могу код как бы скинуть
источник

С

Славик in pro.flood
заношу рутовую ноду в список и дальше в цикле обхожу все left, right нод из списка и если они не нулл, то добавляю, при этом значение в отдельный список
источник

С

Славик in pro.flood
дальше если надо переворачиваю список
источник

С

Славик in pro.flood
        while (nodes.size() > 0) {
           int size = nodes.size();
           ArrayList<Integer> values = new ArrayList<>();
           while (i < size) {
               TreeNode node = nodes.get(i);
               values.add(node.val);
               if (node.left != null) {
                   nodes.add(node.left);
               }
               if (node.right != null) {
                   nodes.add(node.right);
               }
               i++;
           }
источник

LV

Lena Varlamova in pro.flood
скинь я подругомуу уделаю
источник

С

Славик in pro.flood
class Solution {
   public List<List<Integer>> zigzagLevelOrder(TreeNode root) {
       List<List<Integer>> result = new ArrayList<>();
       ArrayList<TreeNode> nodes = new ArrayList<>();
       if (root != null) {
           nodes.add(root);
       }
       int i = 0;
       boolean leftToRight = true;
       while (nodes.size() > 0) {
           int size = nodes.size();
           ArrayList<Integer> values = new ArrayList<>();
           while (i < size) {
               TreeNode node = nodes.get(i);
               values.add(node.val);
               if (node.left != null) {
                   nodes.add(node.left);
               }
               if (node.right != null) {
                   nodes.add(node.right);
               }
               i++;
           }

           if (!leftToRight) {
               for (int l = 0, k = values.size() - 1; l < values.size() / 2; l++, k--) {
                   int b = values.get(l);
                   values.set(l, values.get(k));
                   values.set(k, b);
               }
           }
           result.add(values);
           leftToRight = !leftToRight;
           if (size == nodes.size()) {
               break;
           }
       }
       return result;
   }
}
источник

LV

Lena Varlamova in pro.flood
ясно
источник

С

Славик in pro.flood
звучит как-то грозно
источник

С

Славик in pro.flood
по типу "фу, говно"
источник

С

Славик in pro.flood
но по коду можно понять, что я сначала думал в обход еще действий запихать, а потом решил не заморачиваться
источник

С

Славик in pro.flood
бомби рекурсию
источник