We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
I tried to add an element using insert_at_begining in empty double linked list and got an error
AttributeError: 'NoneType' object has no attribute 'prev'
class Node: def __init__(self, data=None, next=None, prev=None): self.data = data self.next = next self.prev = prev
class DoublyLinkedList: def __init__(self): self.head = None
def print_forward(self): if self.head is None: print("Linked list is empty") return itr = self.head llstr = '' while itr: llstr += str(itr.data) + ' --> ' itr = itr.next print(llstr) def print_backward(self): if self.head is None: print("Linked list is empty") return last_node = self.get_last_node() itr = last_node llstr = '' while itr: llstr += itr.data + '-->' itr = itr.prev print("Link list in reverse: ", llstr) def get_last_node(self): itr = self.head while itr.next: itr = itr.next return itr def get_length(self): count = 0 itr = self.head while itr: count+=1 itr = itr.next return count def insert_at_begining(self, data): node = Node(data, self.head, None) self.head.prev = node print(self.head.prev) self.head = node def insert_at_end(self, data): if self.head is None: self.head = Node(data, None, None) return itr = self.head while itr.next: itr = itr.next itr.next = Node(data, None, itr) def insert_at(self, index, data): if index<0 or index>self.get_length(): raise Exception("Invalid Index") if index==0: self.insert_at_begining(data) return count = 0 itr = self.head while itr: if count == index - 1: node = Node(data, itr.next, itr) if node.next: node.next.prev = node itr.next = node break itr = itr.next count += 1 def remove_at(self, index): if index<0 or index>=self.get_length(): raise Exception("Invalid Index") if index==0: self.head = self.head.next self.head.prev = None return count = 0 itr = self.head while itr: if count == index: itr.prev.next = itr.next if itr.next: itr.next.prev = itr.prev break itr = itr.next count+=1 def insert_values(self, data_list): self.head = None for data in data_list: self.insert_at_end(data) if __name__ == '__main__': ll = DoublyLinkedList() # ll.insert_at_begining(10) # ll.insert_values(["banana","mango","grapes","orange"]) # ll.print_forward() # ll.print_backward() # ll.insert_at_end("figs") # ll.print_forward() # ll.insert_at(0,"jackfruit") # ll.print_forward() # ll.insert_at(6,"dates") # ll.print_forward() # ll.insert_at(2,"kiwi") ll.insert_at_begining('naveen') ll.print_forward()
The text was updated successfully, but these errors were encountered:
No branches or pull requests
I tried to add an element using insert_at_begining in empty double linked list and got an error
AttributeError: 'NoneType' object has no attribute 'prev'
The text was updated successfully, but these errors were encountered: