# Learn Algorithm Design by Building a Shortest Path Algorithm - Step 45

### Tell us what’s happening:

I am very frustrated on this step no idea where to begin on the reasoning behind why the code wont go through seen numerous posts which explained very little about WHY it wont work. I get this message every time. You should create a nested `if` statements that checks if `paths[node][-1]` is equal to `node` . Don’t forget to use `pass` .

``````my_graph = {
'A': [('B', 3), ('D', 1)],
'B': [('A', 3), ('C', 4)],
'C': [('B', 4), ('D', 7)],
'D': [('A', 1), ('C', 7)]
}

def shortest_path(graph, start):
unvisited = list(graph)
distances = {node: 0 if node == start else float('inf') for node in graph}
paths = {node: [] for node in graph}
paths[start].append(start)

# User Editable Region

while unvisited:
current = min(unvisited, key=distances.get)
for node, distance in graph[current]:
if distance + distances[current] < distances[node]:
distances[node] = distance + distances[current]
if paths[node] !=[] and paths[node][-1] == node:
pass

# User Editable Region

print(f'Unvisited: {unvisited}\nDistances: {distances}\nPaths: {paths}')

#shortest_path(my_graph, 'A')
``````

User Agent is: `Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36`

### Challenge Information:

Learn Algorithm Design by Building a Shortest Path Algorithm - Step 45

The hint and the instructions only ask to check 1 thing, but you are checking 2 conditions with your `if` statement using `and`

So I would write only one of the two conditions ending with ==?

I just figured it out you were partially correct about using only one of the two conditions the other problem I encountered was with the second requirement, I had the wrong indentation.

1 Like