Advertisement
Guest User

Untitled

a guest
Nov 20th, 2017
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.06 KB | None | 0 0
  1. public int recursion(List<Integer> currentNodes, int end) {
  2. List<Integer> nextNodes = new ArrayList<>();
  3. for (int current : currentNodes) {
  4. List<int[]> connectingNodes = connections.get(current - 1);
  5. Iterator<int[]> iter = connectingNodes.iterator();
  6. while (iter.hasNext() && cont) {
  7. int[] connectingNode = iter.next();
  8. int number = connectingNode[0];
  9. int length = connectingNode[1] + distanceTo.get(current) + connectingNodes.size();
  10. if (!distanceTo.containsKey(number)
  11. || distanceTo.get(number) > length) {
  12. distanceTo.put(number, length);
  13. nextNodes.add(number);
  14. }
  15. }
  16. }
  17.  
  18. if (getMinDistance(nextNodes) > distanceTo.get(end)
  19. || currentNodes.isEmpty()) {
  20. if (distanceTo.get(end) == max) return -1;
  21. return distanceTo.get(end);
  22. }
  23.  
  24. return recursion(nextNodes, end);
  25. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement