

{"id":146814,"date":"2025-09-10T12:59:35","date_gmt":"2025-09-10T07:29:35","guid":{"rendered":"https:\/\/data-flair.training\/blogs\/?p=146814"},"modified":"2025-09-10T12:59:35","modified_gmt":"2025-09-10T07:29:35","slug":"doubly-linked-list-in-dsa-python","status":"publish","type":"post","link":"https:\/\/data-flair.training\/blogs\/doubly-linked-list-in-dsa-python\/","title":{"rendered":"Doubly Linked List in DSA Python"},"content":{"rendered":"<h3>Program 1<\/h3>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\"># Implementation of double linked list\r\nimport os\r\n\r\nclass Node:\r\n    def __init__(self):\r\n        self.ladd=None\r\n        self.data=None\r\n        self.radd=None\r\n\r\nclass DoubleLinkedList:\r\n    def __init__(self):\r\n        self.start=None\r\n        self.count=0\r\n    def create(self):\r\n        n=int(input(\"Enter first element: \"))\r\n        self.start=Node()\r\n        self.start.ladd=None\r\n        self.start.data=n\r\n        self.start.radd=None\r\n\r\n        temp=self.start\r\n        self.count=self.count+1\r\n        choice=input(\"Want to continue(Y\/y): \")\r\n        choice=choice.lower()\r\n        while(choice=='y'):\r\n            self.count=self.count+1\r\n            n=int(input(\"Enter next element: \"))\r\n            newnode=Node()\r\n            newnode.ladd=None\r\n            newnode.data=n\r\n            newnode.radd=None\r\n\r\n            temp.radd=newnode\r\n            newnode.ladd=temp\r\n            temp=temp.radd\r\n            choice=input(\"Want to continue(Y\/y): \")\r\n            choice=choice.lower()\r\n\r\n    def display(self):\r\n        if(self.start==None):\r\n            print(\"List is empty\")\r\n        else:\r\n            temp=self.start\r\n            while(temp!=None):\r\n                print(temp.data,end=\"----&gt;\")            \r\n                temp=temp.radd\r\n            print(\"\\n Total Node in list: \",self.count)                \r\n        \r\n    def reverseDisplay(self):\r\n        if(self.start==None):\r\n            print(\"List is empty\")\r\n        else:\r\n            temp=self.start\r\n            while(temp.radd!=None):\r\n                temp=temp.radd\r\n\r\n            while(temp!=None):\r\n                print(temp.data,end=\"----&gt;\")            \r\n                temp=temp.ladd\r\n            print(\"\\n Total Node in list: \",self.count)         \r\n\r\n    def insertFirst(self):\r\n        if(self.start==None):\r\n            print(\"List is empty\")\r\n        else:\r\n            self.count=self.count+1\r\n            n=int(input(\"Enter an element: \"))\r\n            newnode=Node()\r\n            newnode.ladd=None\r\n            newnode.data=n\r\n            newnode.radd=None\r\n            self.start.ladd=newnode\r\n            newnode.radd=self.start\r\n            self.start=newnode\r\n\r\n        \r\n    def insertMiddle(self):\r\n        if(self.start==None):\r\n            print(\"List is empty\")\r\n        else:\r\n            self.count=self.count+1\r\n            n=int(input(\"Enter an element: \"))\r\n            newnode=Node()\r\n            newnode.ladd=None\r\n            newnode.data=n\r\n            newnode.radd=None\r\n            pos=int(input(\"Enter poistion of node: \"))\r\n            if(pos&gt;self.count):\r\n                print(\"Poistion is grater than total node: \")\r\n            else:\r\n                i=1\r\n                next=self.start\r\n                while(i&lt;pos):\r\n                    prev=next\r\n                    next=next.radd\r\n                    i=i+1\r\n                prev.radd=newnode\r\n                newnode.ladd=prev\r\n                newnode.radd=next\r\n                next.ladd=newnode                                            \r\n\r\n        \r\n    def insertLast(self):\r\n        if(self.start==None):\r\n            print(\"List is empty\")\r\n        else:\r\n            self.count=self.count+1\r\n            n=int(input(\"Enter an element: \"))\r\n            newnode=Node()\r\n            newnode.ladd=None\r\n            newnode.data=n\r\n            newnode.radd=None\r\n            last=self.start\r\n            while(last.radd!=None):\r\n                last=last.radd\r\n\r\n            last.radd=newnode\r\n            newnode.ladd=last\r\n        \r\n    def deleteFirst(self):\r\n        if(self.start==None):\r\n            print(\"List is empty\")\r\n        else:\r\n            self.count=self.count-1\r\n            temp=self.start\r\n            self.start=self.start.radd\r\n            print(\"Deleted node is : \",temp.data)\r\n            del temp\r\n            temp=None\r\n            \r\n      \r\n    def deleteMiddle(self):\r\n        if(self.start==None):\r\n            print(\"List is empty\")\r\n        else:\r\n            \r\n            pos=int(input(\"Enter poistion of node for delete: \"))\r\n            if(pos&gt;self.count):\r\n                print(\"Poistion is grater than total node: \")\r\n            else:\r\n                self.count=self.count-1\r\n                i=1\r\n                next=self.start\r\n                while(i&lt;pos):\r\n                    prev=next\r\n                    next=next.radd\r\n                    i=i+1\r\n\r\n                temp=next\r\n                next=next.radd                    \r\n\r\n                next.ladd=prev\r\n                prev.radd=next\r\n                print(\"Deleted node is : \",temp.data)\r\n                del temp\r\n                temp=None            \r\n\r\n           \r\n    def deleteLast(self):\r\n        if(self.start==None):\r\n            print(\"List is empty\")\r\n        else:\r\n            self.count=self.count-1\r\n            temp=self.start\r\n            while(temp.radd!=None):\r\n                prev=temp\r\n                temp=temp.radd\r\n\r\n            prev.radd=None    \r\n            print(\"Deleted node is : \",temp.data)\r\n            del temp\r\n            temp=None            \r\n\r\n\r\n# Main\r\nos.system('cls')\r\ndll=DoubleLinkedList()\r\nwhile(1):\r\n    print(\"\\n --------------------DoubleLinked List------------------------\")\r\n    print(\"1. Create\")\r\n    print(\"2. Display\")\r\n    print(\"3. Insert First\")\r\n    print(\"4. Insert Middle\")\r\n    print(\"5. Insert Last\")\r\n    print(\"6. Delete First \")\r\n    print(\"7. Delete Middle \")\r\n    print(\"8. Delete Last \")\r\n    print(\"9. Count Node \")\r\n    print(\"10. Display Reverse\")\r\n    print(\"11.Sorting\")\r\n    print(\"12. Exit\")\r\n    print(\"---------------------------------------------------------\")\r\n    choice=int(input(\"Enter your choice: \"))     \r\n    if(choice==1):\r\n        dll.create()\r\n    elif(choice==2):\r\n        dll.display()\r\n    elif(choice==3):\r\n        dll.insertFirst()    \r\n    elif(choice==4):\r\n        dll.insertMiddle()\r\n    elif(choice==5):\r\n        dll.insertLast()\r\n    elif(choice==6):\r\n        dll.deleteFirst()\r\n    elif(choice==7):\r\n        dll.deleteMiddle()    \r\n    elif(choice==8):\r\n        dll.deleteLast()    \r\n    elif(choice==9):\r\n        print(\"Total Node is : \",dll.count)\r\n    elif(choice==10):\r\n        dll.reverseDisplay()\r\n    else:\r\n        break<\/pre>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Program 1 # Implementation of double linked list import os class Node: def __init__(self): self.ladd=None self.data=None self.radd=None class DoubleLinkedList: def __init__(self): self.start=None self.count=0 def create(self): n=int(input(&#8220;Enter first element: &#8220;)) self.start=Node() self.start.ladd=None self.start.data=n self.start.radd=None temp=self.start&#46;&#46;&#46;<\/p>\n","protected":false},"author":581,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[32847],"tags":[4038,32944,35260,32853,35258,32922,32923,35259],"class_list":["post-146814","post","type-post","status-publish","format-standard","hentry","category-dsa-python-tutorials","tag-doubly-linked-list","tag-doubly-linked-list-in-dsa-python","tag-doubly-linked-list-in-python","tag-dsa-python","tag-dsa-python-doubly-linked-list","tag-dsa-python-practical","tag-dsa-python-program","tag-dsa-python-program-on-doubly-linked-list"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.0 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Doubly Linked List in DSA Python - DataFlair<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/data-flair.training\/blogs\/doubly-linked-list-in-dsa-python\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Doubly Linked List in DSA Python - DataFlair\" \/>\n<meta property=\"og:description\" content=\"Program 1 # Implementation of double linked list import os class Node: def __init__(self): self.ladd=None self.data=None self.radd=None class DoubleLinkedList: def __init__(self): self.start=None self.count=0 def create(self): n=int(input(&quot;Enter first element: &quot;)) self.start=Node() self.start.ladd=None self.start.data=n self.start.radd=None temp=self.start&#046;&#046;&#046;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/data-flair.training\/blogs\/doubly-linked-list-in-dsa-python\/\" \/>\n<meta property=\"og:site_name\" content=\"DataFlair\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/DataFlairWS\/\" \/>\n<meta property=\"article:published_time\" content=\"2025-09-10T07:29:35+00:00\" \/>\n<meta name=\"author\" content=\"DataFlair Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@DataFlairWS\" \/>\n<meta name=\"twitter:site\" content=\"@DataFlairWS\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"DataFlair Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Doubly Linked List in DSA Python - DataFlair","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/data-flair.training\/blogs\/doubly-linked-list-in-dsa-python\/","og_locale":"en_US","og_type":"article","og_title":"Doubly Linked List in DSA Python - DataFlair","og_description":"Program 1 # Implementation of double linked list import os class Node: def __init__(self): self.ladd=None self.data=None self.radd=None class DoubleLinkedList: def __init__(self): self.start=None self.count=0 def create(self): n=int(input(\"Enter first element: \")) self.start=Node() self.start.ladd=None self.start.data=n self.start.radd=None temp=self.start&#46;&#46;&#46;","og_url":"https:\/\/data-flair.training\/blogs\/doubly-linked-list-in-dsa-python\/","og_site_name":"DataFlair","article_publisher":"https:\/\/www.facebook.com\/DataFlairWS\/","article_published_time":"2025-09-10T07:29:35+00:00","author":"DataFlair Team","twitter_card":"summary_large_image","twitter_creator":"@DataFlairWS","twitter_site":"@DataFlairWS","twitter_misc":{"Written by":"DataFlair Team","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/data-flair.training\/blogs\/doubly-linked-list-in-dsa-python\/#article","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/doubly-linked-list-in-dsa-python\/"},"author":{"name":"DataFlair Team","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/c187795dc82ab948373cca526df7c445"},"headline":"Doubly Linked List in DSA Python","datePublished":"2025-09-10T07:29:35+00:00","mainEntityOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/doubly-linked-list-in-dsa-python\/"},"wordCount":8,"commentCount":0,"publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"keywords":["Doubly linked list","doubly linked list in dsa python","doubly linked list in python","dsa python","dsa python doubly linked list","dsa python practical","dsa python program","dsa python program on doubly linked list"],"articleSection":["DSA using Python Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/data-flair.training\/blogs\/doubly-linked-list-in-dsa-python\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/data-flair.training\/blogs\/doubly-linked-list-in-dsa-python\/","url":"https:\/\/data-flair.training\/blogs\/doubly-linked-list-in-dsa-python\/","name":"Doubly Linked List in DSA Python - DataFlair","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/#website"},"datePublished":"2025-09-10T07:29:35+00:00","breadcrumb":{"@id":"https:\/\/data-flair.training\/blogs\/doubly-linked-list-in-dsa-python\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/data-flair.training\/blogs\/doubly-linked-list-in-dsa-python\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/data-flair.training\/blogs\/doubly-linked-list-in-dsa-python\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog Home","item":"https:\/\/data-flair.training\/blogs\/"},{"@type":"ListItem","position":2,"name":"DSA using Python Tutorials","item":"https:\/\/data-flair.training\/blogs\/category\/dsa-python-tutorials\/"},{"@type":"ListItem","position":3,"name":"Doubly Linked List in DSA Python"}]},{"@type":"WebSite","@id":"https:\/\/data-flair.training\/blogs\/#website","url":"https:\/\/data-flair.training\/blogs\/","name":"DataFlair","description":"Learn Today. Lead Tomorrow.","publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/data-flair.training\/blogs\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/data-flair.training\/blogs\/#organization","name":"DataFlair","url":"https:\/\/data-flair.training\/blogs\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/logo\/image\/","url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2016\/07\/Data-Flair.png","contentUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2016\/07\/Data-Flair.png","width":106,"height":48,"caption":"DataFlair"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/DataFlairWS\/","https:\/\/x.com\/DataFlairWS","https:\/\/www.linkedin.com\/company\/dataflair-web-services-pvt-ltd\/","https:\/\/www.youtube.com\/user\/DataFlairWS"]},{"@type":"Person","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/c187795dc82ab948373cca526df7c445","name":"DataFlair Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/2302ebc438084d2f1f993edc1996a0aae01332e81f3227cba8df0c48ec010ca4?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/2302ebc438084d2f1f993edc1996a0aae01332e81f3227cba8df0c48ec010ca4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2302ebc438084d2f1f993edc1996a0aae01332e81f3227cba8df0c48ec010ca4?s=96&d=mm&r=g","caption":"DataFlair Team"},"description":"DataFlair Team provides high-impact content on programming, Java, Python, C++, DSA, AI, ML, data Science, Android, Flutter, MERN, Web Development, and technology. We make complex concepts easy to grasp, helping learners of all levels succeed in their tech careers.","url":"https:\/\/data-flair.training\/blogs\/author\/dfteam6\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/146814","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/users\/581"}],"replies":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/comments?post=146814"}],"version-history":[{"count":2,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/146814\/revisions"}],"predecessor-version":[{"id":146824,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/146814\/revisions\/146824"}],"wp:attachment":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media?parent=146814"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/categories?post=146814"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/tags?post=146814"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}