Unexpected invalid syntax error

hello, i do not understand why i get invalid syntax error at line 100, full code:

class Node:
def init(self, value, next_node=None, prev_node=None):
self.value = value
self.next_node = next_node
self.prev_node = prev_node

def set_next_node(self, next_node):
self.next_node = next_node

def get_next_node(self):
return self.next_node

def set_prev_node(self, prev_node):
self.prev_node = prev_node

def get_prev_node(self):
return self.prev_node

def get_value(self):
return self.value

class DoublyLinkedList:
def init(self):
self.head_node = None
self.tail_node = None

def add_to_head(self, new_value):
new_head = Node(new_value)
current_head = self.head_node

if current_head != None:
  current_head.set_prev_node(new_head)
  new_head.set_next_node(current_head)

self.head_node = new_head

if self.tail_node == None:
  self.tail_node = new_head

def add_to_tail(self, new_value):
new_tail = Node(new_value)
current_tail = self.tail_node

if current_tail != None:
  current_tail.set_next_node(new_tail)
  new_tail.set_prev_node(current_tail)

self.tail_node = new_tail

if self.head_node == None:
  self.head_node = new_tail

def remove_head(self):
removed_head = self.head_node

if removed_head == None:
  return None

self.head_node = removed_head.get_next_node()

if self.head_node != None:
  self.head_node.set_prev_node(None)

if removed_head == self.tail_node:
  self.remove_tail()

return removed_head.get_value()

def remove_tail(self):
removed_tail = self.tail_node

if removed_tail == None:
  return None

self.tail_node = removed_tail.get_prev_node()

if self.tail_node != None:
  self.tail_node.set_next_node(None)

if removed_tail == self.head_node:
  self.remove_head()

return removed_tail.get_value()

def remove_by_value(self, value_to_remove):
node_to_remove = None
current_node = self.head_node

while current_node != None:
  if current_node.get_value() == value_to_remove:
    node_to_remove = current_node
    break
    if node_to_remove == self.head_node:
      self.remove_head()
    if node_to_remove == self.tail_node:
      self.remove_tail()
    node_to_remove.set_next_node(node_to_remove.get_prev_node()
  current_node = current_node.get_next_node() #<-- the place where i get error.


if node_to_remove == None:
  return None

can someone please explain why i get this error, iam really curiuos, maybe iam not seeing something, iam still quite new in python, any help is appreciated.
have a wonderful day.

The problem is with the line 100, you are missing a closing parenthesis in the line before. Change:

node_to_remove.set_next_node(node_to_remove.get_prev_node()

to:

node_to_remove.set_next_node(node_to_remove.get_prev_node())

hope this helps! :slight_smile:

2 Likes

■■■■, thank you so much, i thought i was going crazy

1 Like