Я пытаюсь решить вопрос о Leetcode, который связан с вертикальным обходом двоичного дерева, и я написал следующий код.
Здесь Collections.sort () не работает, и я не могу понять, почему. нужны некоторые указатели для исправления этого кода /
class Solution {
Map<Integer,List<Integer>>map = new TreeMap<>();
List<List<Integer>> result = new ArrayList<>();
public List<List<Integer>> verticalTraversal(TreeNode root) {
if(root == null)
return null;
rec(0,root);
for(Integer i : map.keySet())
{
result.add((map.get(i)));
}
return result;
}
public void rec(int pos, TreeNode node)
{
if(node == null)
return;
List<Integer>list = map.get(pos);
if(list == null)
{
list = new ArrayList<Integer>();
list.add(node.val);
Collections.sort(list);
map.put(pos,list);
}
else
list.add(node.val);
rec(pos-1,node.left);
rec(pos+1,node.right);
}
}
Входной сигнал:
[0,8,1, NULL, NULL, 3,2, NULL, 4,5, NULL, NULL, 7,6]
Ожидается: [[8], [0,3,6], [1,4,5], [2,7]]
Фактически: [[8], [0,3,6], [1,4,5], [7,2]]