Skip to content

Hello developers, Linked List is very big subject in our Data Structure part. And that's why I am created this new repository for explain clearly Linked List in details. I think it can be help you.

Notifications You must be signed in to change notification settings

Asfak00/linked-list-full-explained

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Welcome To Learn Linked List

Here is the all chapter that we will learn in this docs

  • āĻ˛āĻŋāĻ¸ā§āĻŸā§‡āĻ° āĻĒā§āĻ°āĻĨāĻŽ āĻĻāĻŋāĻ•ā§‡ Node āĻ¯ā§āĻ•ā§āĻ¤ āĻ•āĻ°āĻž
  • āĻ˛āĻŋāĻ¸ā§āĻŸā§‡āĻ° āĻļā§‡āĻˇā§‡āĻ° āĻĻāĻŋāĻ•ā§‡ Node āĻ¯ā§āĻ•ā§āĻ¤ āĻ•āĻ°āĻž
  • āĻ˛āĻŋāĻ¸ā§āĻŸā§‡āĻ° āĻĒā§āĻ°āĻĨāĻŽ āĻĻāĻŋāĻ• āĻĨā§‡āĻ•ā§‡ Node delete āĻ•āĻ°āĻž
  • āĻ˛āĻŋāĻ¸ā§āĻŸā§‡āĻ° āĻļā§‡āĻˇā§‡āĻ° āĻĻāĻŋāĻ• āĻĨā§‡āĻ•ā§‡ Node delete āĻ•āĻ°āĻž

What is Linked List?

> āĻĄā§‡āĻŸāĻž āĻ¸ā§āĻŸā§‹āĻ° āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ…ā§āĻ¯āĻžāĻ°ā§‡āĻ° āĻŽāĻ¤ āĻ†āĻ°ā§‡āĻ•āĻŸāĻŋ āĻĄā§‡āĻŸāĻž āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ•āĻšāĻžāĻ° āĻšāĻšā§āĻ›ā§‡ Linked ListāĨ¤ āĻāĻŸāĻŋ āĻ¸ā§āĻŸā§āĻ°ā§āĻ¯āĻžāĻ•āĻšāĻžāĻ° āĻ…āĻ¨ā§āĻ¯āĻžā§Ÿā§€ āĻĄāĻžāĻŸāĻž āĻ¸ā§āĻŸā§‹āĻ° āĻ•āĻ°ā§‡, āĻāĻŦāĻ‚ āĻ°āĻžāĻ¨ āĻŸāĻžāĻ‡āĻŽā§‡ āĻ¨āĻ¤ā§āĻ¨ āĻ¸ā§āĻĒā§‡āĻ¸ā§‡āĻ° āĻĻāĻ°āĻ•āĻžāĻ° āĻšāĻ˛ā§‡ āĻ…āĻŸā§‹āĻŽā§‡āĻŸāĻŋāĻ•ā§‡āĻ˛āĻŋ āĻ¤āĻž āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡ āĻ¨āĻŋāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ āĻāĻŸāĻŋ āĻšāĻšā§āĻ›ā§‡ āĻĄāĻžāĻ‡āĻ¨āĻžāĻŽāĻŋāĻ• āĻĄā§‡āĻŸāĻž āĻ¸ā§āĻŸā§āĻ°āĻžāĻ•āĻšāĻžāĻ°āĨ¤

āĻāĻŸāĻŋ āĻ…ā§āĻ¯āĻžāĻ°ā§‡āĻ° āĻŽāĻ¤āĻ‡, āĻ¤āĻŦā§‡ āĻ…ā§āĻ¯āĻžāĻ°ā§‡āĻ¤ā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ•āĻ¤āĻŸā§āĻ•ā§ āĻŽā§‡āĻŽāĻ°āĻŋ āĻĻāĻ°āĻ•āĻžāĻ°, āĻĒā§āĻ°āĻĨāĻŽā§‡āĻ‡ āĻŦāĻ˛ā§‡ āĻĻāĻŋāĻ¤ā§‡ āĻšā§ŸāĨ¤ āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ˛āĻŋāĻ™ā§āĻ•āĻĄ āĻ˛āĻŋāĻ¸ā§āĻŸā§‡ āĻĒā§āĻ°ā§Ÿā§‹āĻœāĻ¨ āĻ…āĻ¨ā§āĻ¯āĻžā§Ÿā§€ āĻŽā§‡āĻŽāĻ°āĻŋ āĻŦāĻžā§œāĻžāĻ¨ā§‹ āĻŦāĻž āĻ•āĻŽāĻŋā§Ÿā§‡ āĻ¨ā§‡āĻ“ā§ŸāĻž āĻ¯āĻžā§ŸāĨ¤ āĻ†āĻ°ā§‹ āĻĻā§āĻ‡āĻŸāĻž āĻ¸ā§āĻŦāĻŋāĻ§ā§‡ āĻšāĻšā§āĻ›ā§‡, āĻ˛āĻŋāĻ™ā§āĻ•āĻĄ āĻ˛āĻŋāĻ¸ā§āĻŸā§‡āĻ° āĻŽāĻžāĻāĻ–āĻžāĻ¨ āĻĨā§‡āĻ•ā§‡ āĻāĻ° āĻ¯ā§‡ āĻ•ā§‹āĻ¨ āĻ†āĻ‡āĻŸā§‡āĻŽ āĻ°āĻŋāĻŽā§āĻ­ āĻ•āĻ°āĻž āĻ¯āĻžā§Ÿ āĻŦāĻž āĻŽāĻžāĻāĻ–āĻžāĻ¨ā§‡ āĻ¨āĻ¤ā§āĻ¨ āĻ†āĻ‡āĻŸā§‡āĻŽ āĻ¯ā§āĻ•ā§āĻ¤ āĻ•āĻ°āĻž āĻ¯āĻžā§ŸāĨ¤ āĻ†āĻ° āĻ‡āĻ¨āĻŋāĻļāĻžāĻ˛āĻŋ āĻ•ā§‹āĻ¨ āĻ¸āĻžāĻ‡āĻœ āĻĄāĻŋāĻ•ā§āĻ˛ā§‡ā§ŸāĻžāĻ° āĻ•āĻ°ā§‡ āĻĻāĻŋāĻ¤ā§‡ āĻšā§Ÿ āĻ¨āĻžāĨ¤

āĻ…āĻ¸ā§āĻŦāĻŋāĻ§ā§‡āĻ“ āĻ°ā§Ÿā§‡āĻ›ā§‡āĨ¤ āĻ…ā§āĻ¯āĻžāĻ°ā§‡ āĻ°ā§‡āĻ¨ā§āĻĄāĻŽ āĻāĻ•ā§āĻ¸ā§‡āĻ¸ āĻ•āĻ°āĻž āĻ¯āĻžā§Ÿ, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ˛āĻŋāĻ™ā§āĻ•āĻĄ āĻ˛āĻŋāĻ¸ā§āĻŸā§‡ āĻ°ā§‡āĻĄāĻŽ āĻāĻ•ā§āĻ¸ā§‡āĻ¸ āĻ•āĻ°āĻž āĻ¯āĻžā§Ÿ āĻ¨āĻžāĨ¤

āĻ˛āĻŋāĻ™ā§āĻ•āĻĄ āĻ˛āĻŋāĻ¸ā§āĻŸ āĻšāĻšā§āĻ›ā§‡ āĻĄāĻžāĻ‡āĻ¨ā§āĻ¯āĻžāĻŽāĻŋāĻ•ā§āĻ¯āĻžāĻ˛āĻ‡ āĻāĻ˛ā§‹āĻ•ā§‡āĻŸā§‡āĻĄ āĻ¨ā§‹āĻĄāĨ¤ āĻĒā§āĻ°āĻ¤ā§āĻ¯ā§‡āĻ•āĻŸāĻž āĻ¨ā§‹āĻĄā§‡āĻ° āĻāĻ•āĻŸāĻž āĻ­ā§āĻ¯āĻžāĻ˛ā§ āĻāĻŦāĻ‚ āĻāĻ•āĻŸāĻž āĻĒā§Ÿā§‡āĻ¨ā§āĻŸāĻžāĻ° āĻĨāĻžāĻ•ā§‡āĨ¤ āĻĒā§Ÿā§‡āĻ¨ā§āĻŸāĻžāĻ° āĻāĻ° āĻĒāĻ°āĻŦāĻ°ā§āĻ¤āĻŋ āĻ¨ā§‹āĻĄ āĻŦāĻž āĻ˛āĻŋāĻ™ā§āĻ•āĻĄ āĻ˛āĻŋāĻ¸ā§āĻŸā§‡āĻ° āĻĒāĻ°āĻŦāĻ°ā§āĻ¤āĻŋ āĻŽā§‡āĻŽā§āĻŦāĻžāĻ°āĻ•ā§‡ āĻĒā§Ÿā§‡āĻ¨ā§āĻŸ āĻ•āĻ°ā§‡āĨ¤ āĻāĻŸāĻž āĻŸā§āĻ°ā§‡āĻ¨ā§‡āĻ° āĻŽāĻ¤āĨ¤ āĻĒā§āĻ°āĻĨāĻŽ āĻŽā§‡āĻŽā§āĻŦāĻžāĻ° āĻšāĻšā§āĻ›ā§‡ āĻŸā§āĻ°ā§‡āĻ¨ā§‡āĻ° āĻ‡āĻžā§āĻœāĻŋāĻ¨āĨ¤ āĻāĻŦāĻ‚ āĻāĻ°āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§€ āĻŦāĻ—āĻŋāĻŸāĻŋ āĻ‡āĻžā§āĻœāĻŋāĻ¨ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ•āĻžāĻ¨ā§‡āĻ•āĻŸā§‡āĻĄ āĻĨāĻžāĻ•ā§‡, āĻ¯āĻž āĻĒā§Ÿā§‡āĻ¨ā§āĻŸāĻžāĻ°āĨ¤ āĻĒāĻ°ā§‡āĻ° āĻŦāĻ—āĻŋāĻŸāĻŋ āĻāĻ° āĻĒāĻ°ā§‡āĻ° āĻŦāĻ—āĻŋāĻŸāĻŋāĻ° āĻ¸āĻžāĻĨā§‡ āĻ•āĻžāĻ¨ā§‡āĻ•āĻŸā§‡āĻĄ āĻĨāĻžāĻ•ā§‡āĨ¤ āĻ¯āĻĻāĻŋ āĻļā§‡āĻˇā§‡ āĻ•ā§‹āĻ¨ āĻŦāĻ—āĻŋ āĻ¨āĻž āĻĨāĻžāĻ•ā§‡, āĻ¤āĻ–āĻ¨ āĻ†āĻŽāĻ°āĻž āĻŦāĻ˛āĻŋ āĻŸā§āĻ°ā§‡āĻ¨ā§‡āĻ° āĻļā§‡āĻˇāĨ¤ āĻāĻ•āĻ‡ āĻ­āĻžāĻŦā§‡ āĻ˛āĻŋāĻ™ā§āĻ•āĻĄ āĻ˛āĻŋāĻ¸ā§āĻŸā§‡āĻ° āĻĒā§Ÿā§‡āĻ¨ā§āĻŸāĻžāĻ° āĻ¯āĻĻāĻŋ āĻļā§‚āĻ¨ā§āĻ¯ āĻšā§Ÿ, āĻ¤āĻžāĻšāĻ˛ā§‡ āĻ†āĻŽāĻ°āĻž āĻŦāĻ˛āĻŋ āĻāĻ° āĻĒāĻ° āĻ†āĻ° āĻ•ā§‹āĻ¨ āĻŽā§‡āĻŽā§āĻŦāĻžāĻ° āĻ¨ā§‡āĻ‡āĨ¤ āĻ˛āĻŋāĻ™ā§āĻ•āĻĄ āĻ˛āĻŋāĻ¸ā§āĻŸā§‡ āĻĒā§āĻ°āĻĨāĻŽ āĻ¨ā§‹āĻĄ āĻ…āĻ¨ā§‡āĻ• āĻ—ā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻ¨, āĻ•āĻžāĻ°āĻŖ āĻāĻŸāĻžāĻ¤ā§‡ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§€ āĻŽā§‡āĻŽā§āĻŦāĻžāĻ°ā§‡āĻ° āĻĒā§Ÿā§‡āĻ¨ā§āĻŸāĻžāĻ° āĻĨāĻžāĻ•ā§‡āĨ¤ āĻ¯āĻĻāĻŋ āĻĒā§āĻ°āĻĨāĻŽ āĻŽā§‡āĻŽā§āĻŦāĻžāĻ° āĻ•ā§‹āĻ¨ āĻ•ā§āĻ°āĻŽā§‡ āĻ°āĻŋāĻŽā§āĻ­ āĻšā§Ÿā§‡ āĻ¯āĻžā§Ÿ, āĻ¤āĻžāĻšāĻ˛ā§‡ āĻĒā§āĻ°ā§‹ āĻ˛āĻŋāĻ™ā§āĻ•āĻĄ āĻ˛āĻŋāĻ¸ā§āĻŸāĻŋāĻ‡ āĻ†āĻ° āĻ–ā§āĻāĻœā§‡ āĻĒāĻžāĻ“ā§ŸāĻž āĻ¯āĻžāĻŦā§‡ āĻ¨āĻžāĨ¤ āĻŸā§āĻ°ā§‡āĻ¨ā§‡āĻ° āĻ‡āĻžā§āĻœāĻŋāĻ¨ āĻ›āĻžā§œāĻž āĻ…āĻ¨ā§āĻ¯ āĻŦāĻ—āĻŋ āĻ—ā§āĻ˛ā§‹ āĻ¯ā§‡āĻŽāĻ¨ āĻ•ā§‹āĻ¨ āĻ•āĻžāĻœā§‡ āĻ†āĻ¸ā§‡ āĻ¨āĻžāĨ¤

āĻ¨āĻŋāĻšā§‡āĻ° āĻ›āĻŦāĻŋāĻŸāĻŋ āĻ˛āĻ•ā§āĻˇ āĻ•āĻ°ā§āĻ¨,

reference image


āĻāĻŸāĻŋ āĻšāĻšā§āĻ›ā§‡ āĻ˛āĻŋāĻ™ā§āĻ•āĻĄ āĻ˛āĻŋāĻ¸ā§āĻŸā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻ¨ā§‹āĻĄāĨ¤ āĻ¨ā§‹āĻĄā§‡āĻ° āĻĻā§āĻ‡āĻŸāĻž āĻ…āĻ‚āĻļ, āĻāĻ•āĻŸāĻž āĻšāĻšā§āĻ›ā§‡ āĻĄā§‡āĻŸāĻžāĨ¤ āĻ†āĻ°ā§‡āĻ•āĻŸāĻž āĻšāĻšā§āĻ›ā§‡ āĻāĻĄā§āĻ°ā§‡āĻ¸āĨ¤ āĻāĻŽāĻ¨ āĻ…āĻ¨ā§‡āĻ• āĻ—ā§āĻ˛ā§‹ āĻ¨ā§‹āĻĄ āĻ¨āĻŋā§Ÿā§‡āĻ‡ āĻ˛āĻŋāĻ™ā§āĻ•āĻĄ āĻ˛āĻŋāĻ¸ā§āĻŸ āĻ¤ā§ˆāĻ°āĻŋāĨ¤ āĻĒā§āĻ°āĻĨāĻŽ āĻ¨ā§‹āĻĄā§‡āĻ° Address āĻĻā§āĻŦāĻŋāĻ¤ā§€ā§Ÿ āĻ¨ā§‹āĻĄā§‡āĻ° āĻāĻĄā§āĻ°ā§‡āĻ¸ āĻĒā§Ÿā§‡āĻ¨ā§āĻŸ āĻ•āĻ°āĻž āĻĨāĻžāĻ•ā§‡āĨ¤ āĻ¨āĻŋāĻšā§‡āĻ° āĻ›āĻŦāĻŋāĻŸāĻŋāĻ° āĻŽāĻ¤āĻƒ

reference image


āĻāĻ­āĻžāĻŦā§‡ āĻ¯āĻ¤ āĻ‡āĻšā§āĻ›ā§‡ āĻ¤āĻ¤ āĻ—ā§āĻ˛ā§‹ āĻ¨ā§‹āĻĄ āĻ¯ā§āĻ•ā§āĻ¤ āĻ•āĻ°āĻž āĻ¯āĻžā§ŸāĨ¤

āĻŸā§āĻ°ā§‡āĻ¨ā§‡āĻ° āĻāĻ• āĻāĻ•āĻŸāĻž āĻ†āĻ˛āĻžāĻĻāĻž āĻŦā§āĻ˛āĻ•āĻ•ā§‡ āĻ†āĻŽāĻ°āĻž āĻŦāĻ˛āĻŋ āĻŦāĻ—āĻŋ, āĻ˛āĻŋāĻ™ā§āĻ•āĻĄ āĻ˛āĻŋāĻ¸ā§āĻŸā§‡ āĻ†āĻŽāĻ°āĻž āĻŦāĻ˛āĻŦ āĻ¨ā§‹āĻĄāĨ¤

Linked List āĻĻā§āĻ‡ āĻ§āĻ°āĻŖā§‡āĻ°āĨ¤ āĻ¨āĻŋāĻšā§‡ āĻĻā§‡āĻ“ā§ŸāĻž āĻšāĻ˛āĻƒ

  • Singly Linked List
  • Doubly Linked List

Singly Linked List

> Singly Linked List āĻ āĻ†āĻŽāĻ°āĻž head āĻāĻŦāĻ‚ tail āĻ¨āĻžāĻŽāĻ• ā§¨āĻŸāĻŋ āĻœāĻŋāĻ¨āĻŋāĻ¸ āĻĒāĻžāĻ‡, āĻ¯ā§‡āĻŸāĻž āĻĻāĻŋā§Ÿā§‡ āĻ†āĻŽāĻ°āĻž āĻŦā§āĻāĻ¤ā§‡ āĻĒāĻžāĻ°āĻŦā§‹ āĻ¯ā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ•ā§‹āĻ¨ āĻāĻ˛āĻŋāĻŽā§‡āĻ¨ā§āĻŸ head āĻāĻŦāĻ‚ āĻ•ā§‹āĻ¨ āĻāĻ˛āĻŋāĻŽā§‡āĻ¨ā§āĻŸ tail āĻ†āĻ° head āĻāĻ° āĻŽāĻžāĻ¨ā§‡ āĻšāĻšā§āĻ›ā§‡ āĻ¸āĻŦāĻžāĻ° āĻĒā§āĻ°āĻĨāĻŽ āĻ¸āĻ‚āĻ–ā§āĻ¯āĻž āĻāĻŦāĻ‚ tail āĻāĻ° āĻŽāĻžāĻ¨ā§‡ āĻšāĻšā§āĻ›ā§‡ āĻ¸āĻŦāĻžāĻ° āĻļā§‡āĻˇā§‡āĻ° āĻ¸āĻ‚āĻ–ā§āĻ¯āĻžāĨ¤ āĻāĻ°āĻĒāĻ° Singly Linked List āĻ āĻ†āĻŽāĻ°āĻž next āĻ¨āĻžāĻŽā§‡ āĻ“ āĻāĻ•āĻŸāĻŋ āĻœāĻŋāĻ¨āĻŋāĻ¸ āĻĒāĻžāĻ‡ āĻ¯ā§‡āĻŸāĻž āĻĻā§āĻŦāĻžāĻ°āĻž āĻ†āĻŽāĻ°āĻž āĻœāĻžāĻ¨āĻ¤ā§‡ āĻĒāĻžāĻ°āĻŋ āĻ¯ā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° current āĻāĻ˛āĻŋāĻŽā§‡āĻ¨ā§āĻŸā§‡āĻ° āĻĒāĻ°ā§‡ āĻ•ā§‹āĻ¨ āĻāĻ˛āĻŋāĻŽā§‡āĻ¨ā§āĻŸ āĻ°ā§Ÿā§‡āĻ›ā§‡āĨ¤ āĻ†āĻšā§āĻ›āĻž āĻŦā§āĻāĻ¤ā§‡ āĻ¨āĻž āĻĒāĻžāĻ°āĻ˛ā§‡ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ¨ā§Ÿ, āĻ¨āĻŋāĻšā§‡āĻ° āĻ›āĻŦāĻŋāĻŸāĻŋ āĻĻā§‡āĻ–ā§‡āĻ¨ āĻāĻŦāĻ‚ āĻ“āĻ‡ āĻ›āĻŦāĻŋ āĻĨā§‡āĻ•ā§‡ āĻ†āĻŽāĻ°āĻž āĻ†āĻ°ā§‹ āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤ āĻ†āĻ˛ā§‹āĻšāĻ¨āĻž āĻ•āĻ°āĻŦā§‹ āĻ¨āĻŋāĻšā§‡āĨ¤

reference image


āĻ‰āĻĒāĻ°ā§‡āĻ° āĻ›āĻŦāĻŋāĻŸāĻŋ āĻ˛āĻ•ā§āĻˇ āĻ•āĻ°āĻ˛ā§‡ āĻĻā§‡āĻ–āĻŦā§‡āĻ¨ āĻ¯ā§‡ āĻāĻ•āĻĻāĻŽ āĻĒā§āĻ°āĻĨāĻŽā§‡ head āĻ°ā§Ÿā§‡āĻ›ā§‡ āĻāĻŦāĻ‚ āĻāĻ•āĻĻāĻŽ āĻļā§‡āĻˇā§‡ tail āĻ°ā§Ÿā§‡āĻ›ā§‡ āĻāĻŦāĻ‚ āĻŽāĻžāĻāĻ–āĻžāĻ¨ā§‡ length āĻ°ā§Ÿā§‡āĻ›ā§‡āĨ¤ āĻāĻŦāĻ‚ āĻ¨āĻŋāĻšā§‡āĻ° āĻ¯ā§‡ arrow āĻšāĻŋāĻšā§āĻ¨ āĻĻāĻŋā§Ÿā§‡ next next āĻĻā§‡āĻ–āĻžāĻ¨ā§‹ āĻšā§Ÿā§‡āĻ›ā§‡ āĻ“āĻŸāĻž āĻšāĻšā§āĻ›ā§‡ āĻāĻĄā§āĻ°ā§‡āĻ¸ āĻāĻŦāĻ‚ āĻ¸ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ†āĻŽāĻ°āĻž āĻĻā§‡āĻ–āĻ¤ā§‡ āĻĒāĻžāĻ°āĻŦā§‹ āĻ¯ā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻāĻ‡ āĻāĻ˛āĻŋāĻŽā§‡āĻ¨ā§āĻŸā§‡āĻ° āĻĒāĻ°ā§‡ next āĻ•ā§‹āĻ¨ āĻāĻ˛āĻŋāĻŽā§‡āĻ¨ā§āĻŸ āĻ°ā§Ÿā§‡āĻ›ā§‡āĨ¤ āĻ†āĻ° āĻāĻ­āĻžāĻŦā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° Singly Linked List āĻšāĻ˛āĻ¤ā§‡ āĻĨāĻžāĻ•āĻŦā§‡ āĻāĻŦāĻ‚ āĻ¸āĻŦāĻžāĻ° āĻļā§‡āĻˇā§‡ āĻŽāĻžāĻ¨ā§‡ tail āĻ āĻ¯ā§‡ āĻĨāĻžāĻ•āĻŦā§‡ āĻ¤āĻžāĻ° āĻ•ā§‹āĻ¨ā§‹ next value āĻĨāĻžāĻ•āĻŦā§‡ āĻ¨āĻž āĻŽāĻžāĻ¨ā§‡ āĻ“āĻ‡ āĻāĻ˛āĻŋāĻŽā§‡āĻ¨ā§āĻŸā§‡āĻ° next value null āĻĨāĻžāĻ•āĻŦā§‡āĨ¤

Singly Linked List - delete last node using POP method


reference image


āĻ‰āĻĒāĻ°ā§‡āĻ° āĻ›āĻŦāĻŋāĻŸāĻŋāĻ¤ā§‡ āĻĻā§‡āĻ–āĻž āĻ¯āĻžāĻšā§āĻ›ā§‡ āĻ¯ā§‡ āĻāĻ•āĻŸāĻŋ head āĻāĻŦāĻ‚ āĻāĻ•āĻŸāĻŋ tail āĻ°ā§Ÿā§‡āĻ›ā§‡ ( āĻ†āĻ—ā§‡ āĻ¯ā§‡āĻ­āĻžāĻŦā§‡ āĻŦāĻ˛ā§‡āĻ›āĻŋāĻ˛āĻžāĻŽ ) āĻ¤āĻžāĻ°āĻĒāĻ° āĻ†āĻŽāĻžāĻĻā§‡āĻ° node āĻ—ā§āĻ˛ā§‹ āĻ°ā§Ÿā§‡āĻ›ā§‡ āĻāĻŦāĻ‚ āĻŦāĻ˛ā§‡āĻ›āĻŋāĻ˛āĻžāĻŽ āĻ¯ā§‡ āĻĒā§āĻ°āĻ¤ā§āĻ¯ā§‡āĻ•āĻŸāĻŋ node āĻāĻ° āĻ¸āĻžāĻĨā§‡ next āĻ¨āĻžāĻŽā§‡ āĻāĻ•āĻŸāĻž āĻĒā§āĻ°āĻĒāĻžāĻ°ā§āĻŸāĻŋ āĻĨāĻžāĻ•ā§‡ āĻ¯āĻžāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻ†āĻŽāĻ°āĻž āĻœāĻžāĻ¨āĻ¤ā§‡ āĻĒāĻžāĻ°āĻŋ āĻ¯ā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻāĻ‡ node āĻāĻ° āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§€ node āĻ•ā§‹āĻ¨āĻŸāĻŋ āĻ…āĻĨāĻŦāĻž āĻ¤āĻžāĻ° value āĻ•āĻ¤? āĻ¤āĻžāĻšāĻ˛ā§‡ āĻāĻ‡āĻŦāĻžāĻ° āĻ†āĻŽāĻ°āĻž āĻšāĻžāĻšā§āĻ›āĻŋ āĻ¯ā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻāĻ‡ singly linked list āĻĨā§‡āĻ•ā§‡ āĻ¸āĻŦāĻžāĻ° āĻļā§‡āĻˇā§‡ āĻ¯ā§‡ āĻāĻ˛āĻŋāĻŽā§‡āĻ¨ā§āĻŸāĻŸāĻŋ āĻĨāĻžāĻ•āĻŦā§‡ āĻĨāĻžāĻ•ā§‡ āĻĄāĻŋāĻ˛āĻŋāĻŸ āĻ•āĻ°āĻŦā§‹, āĻ¤āĻžāĻšāĻ˛ā§‡ āĻ†āĻĒāĻ¨āĻžāĻ°āĻž āĻŦāĻ˛āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨ āĻ¯ā§‡ āĻ†āĻŽāĻ°āĻž āĻ¤ā§‹ āĻ¸ā§‡āĻŸāĻŋ āĻĒā§‡ā§Ÿā§‡ āĻ¯āĻžāĻšā§āĻ›āĻŋ āĻ¯āĻĻāĻŋ āĻ†āĻŽāĻ°āĻž tail āĻ•ā§‡ āĻ§āĻ°āĻŋ āĻ¤āĻžāĻšāĻ˛ā§‡āĻ‡āĨ¤ āĻ¨āĻž, Linked List āĻ āĻāĻ‡āĻ­āĻžāĻŦā§‡ āĻ•āĻ°āĻž āĻ¯āĻžā§Ÿ āĻ¨āĻžāĨ¤ āĻ•āĻžāĻ°āĻŖ Linked List āĻ āĻ†āĻŽāĻ°āĻž āĻāĻ•āĻŸāĻŋ āĻāĻ˛āĻŋāĻŽā§‡āĻ¨ā§āĻŸ āĻĨā§‡āĻ•ā§‡ āĻĒāĻ°ā§‡āĻ° āĻāĻ˛āĻŋāĻŽā§‡āĻ¨ā§āĻŸā§‡ āĻ¯ā§‡āĻ¤ā§‡ āĻšāĻ˛ā§‡ āĻĒā§Ÿā§‡āĻ¨ā§āĻŸāĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ¯ā§‡āĻ¤ā§‡ āĻšā§Ÿ āĻ¯ā§‡āĻŸāĻž āĻ†āĻŽāĻ°āĻž Linked List āĻāĻ° āĻ¸āĻŦ Node āĻāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻĒā§‡ā§Ÿā§‡ āĻĨāĻžāĻ•āĻŋ ( next āĻ¯ā§‡āĻŸāĻž āĻ“āĻ‡āĻŸāĻžāĻ‡ )āĨ¤ āĻ¤āĻžāĻšāĻ˛ā§‡ āĻ†āĻŽāĻ°āĻž āĻ¯āĻĻāĻŋ POP āĻŽā§‡āĻĨāĻĄā§‡āĻ° āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ā§‡ āĻ•ā§‹āĻ¨ā§‹ node āĻĄāĻŋāĻ˛āĻŋāĻŸ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻžāĻ‡ āĻ¤āĻžāĻšāĻ˛ā§‡, āĻ‰āĻĒāĻ°ā§‡āĻ° Diagram āĻ āĻĻā§‡ā§ŸāĻž āĻ†āĻ›ā§‡ āĻ¸ā§‡āĻ­āĻžāĻŦā§‡ āĻĢāĻ˛ā§‹ āĻ•āĻ°āĻŦā§‹āĨ¤ āĻĒā§āĻ°āĻĨāĻŽā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻĒā§āĻ°āĻĨāĻŽ āĻ¯ā§‡ node āĻ†āĻ›ā§‡ āĻ¸ā§‡āĻŸāĻžāĻ•ā§‡ currentNode āĻ¨āĻžāĻŽā§‡ āĻāĻ•āĻŸāĻŋ variable āĻ āĻ°āĻžāĻ–āĻŦā§‹ āĻāĻŦāĻ‚ āĻ†āĻŽāĻ°āĻž āĻšā§‡āĻ• āĻ•āĻ°āĻŦā§‹ āĻ¯ā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻāĻ‡ currentNode āĻāĻ° āĻ­āĻŋāĻ¤āĻ°ā§‡ next āĻ¨āĻžāĻŽā§‡ āĻ¯ā§‡ āĻĒā§āĻ°āĻĒāĻžāĻ°ā§āĻŸāĻŋ āĻ°ā§Ÿā§‡āĻ›ā§‡ āĻ¸ā§‡āĻŸāĻž āĻ•āĻŋ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻĒā§āĻ°ā§‹ Linked List āĻāĻ° āĻ¯ā§‡ Tail āĻ°ā§Ÿā§‡āĻ›ā§‡ āĻ¸ā§‡āĻŸāĻžāĻ° āĻ¸āĻŽāĻžāĻ¨? āĻ¯āĻĻāĻŋ āĻ¸āĻŽāĻžāĻ¨ āĻšā§Ÿ āĻ¤āĻžāĻšāĻ˛ā§‡ āĻ¤ā§‹ āĻ†āĻŽāĻ°āĻž āĻ˛āĻžāĻ¸ā§āĻŸ node āĻŸāĻŋ āĻĒā§‡ā§Ÿā§‡ āĻ—ā§‡āĻ˛āĻžāĻŽ āĻ†āĻ° āĻ¯āĻĻāĻŋ āĻ¸āĻŽāĻžāĻ¨ āĻ¨āĻž āĻšā§Ÿ āĻ¤āĻžāĻšāĻ˛ā§‡ āĻ†āĻŽāĻ°āĻž āĻ“āĻ‡ currentNode āĻāĻ° nextNode āĻ¯ā§‡āĻŸāĻž āĻ†āĻ›ā§‡ āĻ“āĻ‡āĻŸāĻžāĻ•ā§‡ currentNode āĻŦāĻžāĻ¨āĻŋā§Ÿā§‡ āĻĻāĻŋāĻŦā§‹ āĻāĻŦāĻ‚ āĻ†āĻŦāĻžāĻ° āĻ¸ā§‡āĻ‡āĻŽ āĻĒā§āĻ°āĻ¸ā§‡āĻ¸ā§‡ āĻšā§‡āĻ• āĻ•āĻ°āĻŦā§‹ āĻ¯ā§‡ āĻāĻ‡ currentNode āĻāĻ° nextNode āĻ•āĻŋ āĻ†āĻŽāĻžāĻĻā§‡āĻ° tail āĻāĻ° āĻ¸āĻŽāĻžāĻ¨? āĻāĻ­āĻžāĻŦā§‡ āĻšā§‡āĻ• āĻ•āĻ°ā§‡ āĻ•āĻ°ā§‡ āĻ†āĻŽāĻ°āĻž āĻĒā§āĻ°ā§‹ node āĻĻā§‡āĻ–āĻŦā§‹ āĻāĻŦāĻ‚ āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ—āĻŋā§Ÿā§‡ āĻ†āĻŽāĻ°āĻž tail āĻāĻ° āĻ¸āĻŽāĻžāĻ¨ āĻĒāĻžāĻŦā§‹ ( āĻ…āĻ°ā§āĻĨāĻžā§Ž, if(next === tail) āĻ¸āĻ¤ā§āĻ¯āĻŋ āĻšāĻ˛ā§‡ ) āĻ†āĻŽāĻ°āĻž āĻ“āĻ‡ node āĻŸāĻžāĻ•ā§‡ delete āĻ•āĻ°ā§‡ āĻĻāĻŋāĻŦā§‹ āĻāĻŦāĻ‚ āĻ†āĻŽāĻžāĻĻā§‡āĻ° tail āĻ•ā§‡ āĻ¨āĻŋā§Ÿā§‡ āĻ†āĻ¸āĻŦā§‹ āĻ†āĻŽāĻ°āĻž āĻ¯ā§‡ currentNode āĻĒā§‡ā§Ÿā§‡āĻ›āĻŋ āĻ“āĻ‡āĻŸāĻžā§Ÿ, āĻŽāĻžāĻ¨ā§‡ āĻāĻ–āĻ¨ tail āĻšāĻšā§āĻ›ā§‡ āĻ“āĻ‡ currentNodeāĨ¤ āĻāĻŦāĻ‚ āĻ¸āĻ°ā§āĻŦāĻļā§‡āĻˇ āĻ¯āĻ–āĻ¨ āĻ†āĻŽāĻžāĻĻā§‡āĻ° list āĻ āĻ•ā§‹āĻ¨ā§‹ node āĻĨāĻžāĻ•āĻŦā§‡ āĻ¨āĻž āĻ¤āĻ–āĻ¨ āĻ†āĻŽāĻ°āĻž āĻ†āĻŽāĻžāĻĻā§‡āĻ° head āĻāĻŦāĻ‚ tail āĻ•āĻ°ā§‡ āĻĻāĻŋāĻŦā§‹ null āĻ•ā§‡ ( āĻŽāĻžāĻ¨ā§‡ āĻļā§āĻ°ā§āĻ¤ā§‡ āĻ¯ā§‡āĻ­āĻžāĻŦā§‡ āĻ›āĻŋāĻ˛ā§‹ āĻ¸ā§‡āĻ­āĻžāĻŦā§‡ )āĨ¤

āĻ¯āĻĻāĻŋ code āĻĻā§‡āĻ–ā§‡ āĻŦā§āĻāĻ¤ā§‡ āĻšāĻžāĻ¨ āĻ¤āĻžāĻšāĻ˛ā§‡ āĻāĻ‡ āĻ°āĻŋāĻĒā§‹āĻœāĻŋāĻŸāĻ°āĻŋāĻ¤ā§‡ Singly List List āĻĢā§‹āĻ˛ā§āĻĄāĻžāĻ°ā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻĒāĻžāĻŦā§‡āĻ¨ āĻ¸āĻŦ āĻ•ā§‹āĻĄāĨ¤


Singly Linked List - delete first node using SHIFT method

> āĻāĻŦāĻžāĻ° āĻ†āĻŽāĻ°āĻž āĻšāĻžāĻšā§āĻ›āĻŋ āĻ¯ā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ˛āĻŋāĻ¸ā§āĻŸā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻĨāĻžāĻ•āĻž āĻ¸āĻŦ node āĻĨā§‡āĻ•ā§‡ āĻ¸āĻŦāĻžāĻ° āĻĒā§āĻ°āĻĨāĻŽā§‡ āĻ¯ā§‡āĻŸāĻž āĻĨāĻžāĻ•āĻŦā§‡ āĻ¸ā§‡āĻŸāĻžāĻ•ā§‡ delete āĻ•āĻ°ā§‡ āĻĻāĻŋāĻŦā§‹ āĻ¯āĻ–āĻ¨ Shift() āĻŽā§‡āĻĨāĻĄāĻŸāĻŋ call āĻ•āĻ°āĻŦā§‹ āĻ¤āĻ–āĻ¨āĨ¤ āĻāĻŦāĻ‚ āĻāĻ‡ āĻ•āĻžāĻœāĻŸāĻŋ āĻ…āĻ¨ā§‡āĻ• āĻ¸āĻšāĻœāĨ¤ āĻ†āĻŽāĻ°āĻž āĻĒā§āĻ°āĻĨāĻŽā§‡ āĻšā§‡āĻ• āĻ•āĻ°ā§‡ āĻ¨āĻŋāĻŦā§‹ āĻ¯ā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ˛āĻŋāĻ¸ā§āĻŸāĻŸāĻŋ āĻ•āĻŋ āĻāĻ•ā§‡āĻŦāĻžāĻ°ā§‡ āĻ–āĻžāĻ˛āĻŋ āĻ¨āĻžāĻ•āĻŋ āĻ¯āĻĻāĻŋ āĻ–āĻžāĻ˛āĻŋ āĻĨāĻžāĻ•ā§‡ āĻ¤āĻžāĻšāĻ˛ā§‡ āĻ†āĻŽāĻ°āĻž null āĻ°āĻŋāĻŸāĻžāĻ°ā§āĻ¨ āĻ•āĻ°āĻŦā§‹ āĻ¨āĻžāĻšāĻ˛ā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° delete āĻāĻ° āĻ•āĻ°āĻŦā§‹āĨ¤ āĻ¤ā§‹ delete āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻĒā§āĻ°āĻĨāĻŽā§‡ āĻāĻ•āĻŸāĻŋ variable āĻ¨āĻŋāĻ¤ā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ¯ā§‡ head āĻ°ā§Ÿā§‡āĻ›ā§‡ āĻ¸ā§‡āĻŸāĻžāĻ•ā§‡ currentNode āĻ¨āĻžāĻŽāĻ• āĻāĻ•āĻŸāĻŋ variable āĻ āĻ°āĻžāĻ–āĻŦā§‹āĨ¤ āĻ¤āĻžāĻ°āĻĒāĻ° āĻ†āĻŽāĻ°āĻž āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ˛āĻŋāĻ¸ā§āĻŸā§‡āĻ° āĻ¯ā§‡ tail āĻ°ā§Ÿā§‡āĻ›ā§‡ āĻ¤āĻžāĻ° āĻ¸āĻŽāĻžāĻ¨ currentNode āĻāĻ° next āĻŦāĻ¸āĻŋā§Ÿā§‡ āĻĻāĻŋāĻŦā§‹ ( this.tail = currentNode.next āĻāĻ­āĻžāĻŦā§‡ )āĨ¤ āĻ¤āĻžāĻšāĻ˛ā§‡āĻ‡ āĻ¤ā§‹ āĻ†āĻŽāĻžāĻĻā§‡āĻ° delete āĻ•āĻ°āĻž āĻ¸āĻŽā§āĻĒā§‚āĻ°ā§āĻŖāĨ¤ āĻāĻ°āĻĒāĻ° āĻ†āĻŽāĻ°āĻž āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ˛āĻŋāĻ¸ā§āĻŸā§‡āĻ° length āĻ•āĻŽāĻŋā§Ÿā§‡ āĻĻāĻŋāĻŦā§‹, āĻ•āĻžāĻ°āĻŖ āĻāĻ•āĻŸāĻŋ node delete āĻšā§Ÿā§‡ āĻ—ā§‡āĻ˛ā§‡ āĻ¤ā§‹ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻāĻ•āĻŸāĻŋ length āĻ•āĻŽāĻžāĻ¤ā§‡ āĻšāĻŦā§‡ āĻ¤āĻžāĻ‡āĨ¤ āĻāĻ°āĻĒāĻ° āĻ†āĻŽāĻ°āĻž āĻ†āĻ°ā§‡āĻ•āĻŸāĻž āĻšā§‡āĻ• āĻ•āĻ°āĻŦā§‹ āĻ¯ā§‡ āĻ¯āĻĻāĻŋ āĻ†āĻŽāĻžāĻĻā§‡āĻ° length === 0 āĻšā§Ÿ āĻ¤āĻžāĻšāĻ˛ā§‡ tail āĻ¯ā§‡āĻ¨ null āĻšā§Ÿā§‡ āĻ¯āĻžā§ŸāĨ¤ āĻ•āĻžāĻ°āĻŖ head null āĻšā§Ÿā§‡ āĻ¯āĻžāĻŦā§‡ shift() call āĻ•āĻ°āĻžāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻĻā§‡āĻ–āĻž āĻ¯āĻžāĻŦā§‡ āĻ¯ā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° tail āĻ value āĻ°ā§Ÿā§‡ āĻ—ā§‡āĻ›ā§‡ āĻ¤āĻžāĻ° āĻ•āĻžāĻ°āĻŖā§‡ āĻ†āĻŽāĻ°āĻž āĻāĻŸāĻž āĻ•āĻ°āĻŦā§‹ āĻ¯ā§‡ āĻ¯āĻ–āĻ¨ length 0 āĻšā§Ÿā§‡ āĻ¯āĻžāĻŦā§‡ āĻ¤āĻ–āĻ¨ tail āĻāĻ° value null āĻšā§Ÿā§‡ āĻ¯āĻžāĻŦā§‡ āĻāĻŦāĻ‚ tail āĻāĻ° next āĻ“ null āĻšā§Ÿā§‡ āĻ¯āĻžāĻŦā§‡āĨ¤ āĻāĻ•āĻ•āĻĨāĻžā§Ÿ āĻ¸āĻŦ āĻ•āĻŋāĻ›ā§ null āĻĨāĻžāĻ•āĻŦā§‡ āĻ¯āĻĻāĻŋ length 0 āĻšā§Ÿā§‡ āĻ¯āĻžā§ŸāĨ¤

reference āĻāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¨āĻŋāĻšā§‡ āĻ•ā§‹āĻĄ āĻĻāĻŋā§Ÿā§‡ āĻĻāĻŋāĻ˛āĻžāĻŽ āĻ•āĻŋāĻ­āĻžāĻŦā§‡ shift method implement āĻ•āĻ°āĻž āĻ¯āĻžā§ŸāĨ¤

// shift method
shift() {
    // āĻšā§‡āĻ• āĻ•āĻ°āĻž āĻšāĻšā§āĻ›ā§‡ āĻ¯ā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ˛āĻŋāĻ¸ā§āĻŸ āĻ–āĻžāĻ˛āĻŋ āĻ•āĻŋ āĻ¨āĻžāĨ¤
    if (!this.isEmpty()) {
      // currentNode āĻ¨āĻžāĻŽāĻ• āĻāĻ•āĻŸāĻŋ variable āĻ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ˛āĻŋāĻ¸ā§āĻŸā§‡āĻ° head āĻ•ā§‡ āĻ°āĻžāĻ–āĻž āĻšāĻšā§āĻ›ā§‡āĨ¤
      let currentNode = this.head;

      // āĻāĻŦāĻžāĻ° delete āĻ•āĻ°āĻž āĻšāĻšā§āĻ›ā§‡ āĻœāĻžāĻ¸ā§āĻŸ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ˛āĻŋāĻ¸ā§āĻŸā§‡āĻ° head āĻ•ā§‡ currentNode āĻāĻ° next āĻŦāĻžāĻ¨āĻŋā§Ÿā§‡ āĻĻā§‡āĻ“ā§ŸāĻž āĻšāĻšā§āĻ›ā§‡āĨ¤
      this.head = currentNode.next;

      // āĻāĻŦāĻžāĻ° āĻ˛āĻŋāĻ¸ā§āĻŸā§‡āĻ° length āĻ•āĻŽāĻžāĻ¨ā§‹ āĻšāĻšā§āĻ›ā§‡āĨ¤
      this.length--;

      // āĻšā§‡āĻ• āĻ•āĻ°āĻž āĻšāĻšā§āĻ›ā§‡ āĻ¯ā§‡ āĻ¯āĻĻāĻŋ āĻ˛āĻŋāĻ¸ā§āĻŸā§‡āĻ° length 0 āĻšā§Ÿ āĻ¤āĻžāĻšāĻ˛ā§‡ tail āĻ¯ā§‡āĻ¨ā§‹ null āĻšā§Ÿā§‡ āĻ¯āĻžā§ŸāĨ¤
      if (this.length === 0) {
        this.tail = null;
      }

      // āĻ¸āĻŦāĻžāĻ° āĻļā§‡āĻˇā§‡ currentNode return āĻ•āĻ°āĻž āĻšāĻšā§āĻ›ā§‡āĨ¤
      return currentNode;
    }
  }

Singly Linked List - Add the node in the first position of the list using the UNSHIFT method

> āĻĒā§āĻ°āĻĨāĻŽā§‡ āĻ¤ā§‹ āĻ†āĻŽāĻ°āĻž āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ˛āĻŋāĻ¸ā§āĻŸā§‡ node āĻ¯ā§āĻ•ā§āĻ¤ āĻ•āĻ°ā§‡āĻ›āĻŋāĻ˛āĻžāĻŽ āĻ˛āĻžāĻ¸ā§āĻŸā§‡āĻ° āĻĻāĻŋāĻ• āĻĻāĻŋā§Ÿā§‡ āĻ¯ā§‡āĻ­āĻžāĻŦā§‡ āĻ•ā§‹āĻ¨ā§‹ array āĻ¤ā§‡ push() method āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ•āĻ°āĻ¤āĻžāĻŽāĨ¤ āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻāĻ–āĻ¨ āĻ†āĻŽāĻ°āĻž āĻšāĻžāĻšā§āĻ›āĻŋ āĻ¯ā§‡ āĻ¯āĻ–āĻ¨ āĻ•ā§‹āĻ¨ā§‹ node āĻ¯ā§āĻ•ā§āĻ¤ āĻ•āĻ°āĻŦā§‹ āĻ¤āĻ–āĻ¨ āĻ¸ā§‡āĻ‡ node āĻ¯ā§‡āĻ¨ā§‹ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ˛āĻŋāĻ¸ā§āĻŸā§‡āĻ° āĻĒā§āĻ°āĻĨāĻŽ āĻĻāĻŋāĻ•ā§‡ āĻ¯ā§āĻ•ā§āĻ¤ āĻšā§Ÿ āĻŽāĻžāĻ¨ā§‡ array āĻāĻ° unshift() method āĻ¯ā§‡āĻ­āĻžāĻŦā§‡ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡ āĻ“āĻ‡āĻ­āĻžāĻŦā§‡āĻ‡āĨ¤ āĻāĻŸāĻž āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻŦā§‡āĻļāĻŋ āĻ•ā§‹āĻ¨ā§‹ āĻ•āĻžāĻœ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ āĻ¨āĻžāĨ¤ āĻ†āĻŽāĻ°āĻž āĻ¯āĻ–āĻ¨ āĻ•ā§‹āĻ¨ā§‹ node āĻ¯ā§āĻ•ā§āĻ¤ āĻ•āĻ°āĻŦā§‹ āĻ¤āĻ–āĻ¨ āĻ“āĻ‡ node āĻ•ā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ˛āĻŋāĻ¸ā§āĻŸā§‡āĻ° head āĻŦāĻžāĻ¨āĻŋā§Ÿā§‡ āĻĻāĻŋāĻŦā§‹ āĻāĻŦāĻ‚ āĻ¨āĻ¤ā§āĻ¨ āĻ¯ā§‡ node āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡āĻ›āĻŋ āĻ¸ā§‡āĻ‡ node āĻāĻ° next āĻŦāĻžāĻ¨āĻŋā§Ÿā§‡ āĻĻāĻŋāĻŦā§‹ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ†āĻ—ā§‡āĻ° head āĻ¯ā§‡āĻŸāĻž āĻ›āĻŋāĻ˛ā§‹ āĻ“āĻ‡āĻŸāĻžāĻ•ā§‡ āĻ¤āĻžāĻšāĻ˛ā§‡āĻ‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° node āĻ¯ā§āĻ•ā§āĻ¤ āĻ•āĻ°āĻž āĻšā§Ÿā§‡ āĻ¯āĻžāĻŦā§‡āĨ¤

āĻŦāĻŋāĻˇā§ŸāĻŸāĻŋ āĻšā§ŸāĻ¤ā§‹ āĻ•ā§āĻ˛āĻŋā§ŸāĻžāĻ° āĻšāĻ¨ āĻ¨āĻŋāĨ¤ āĻ¤āĻžāĻ‡ āĻ¨āĻŋāĻšā§‡ āĻ•ā§‹āĻĄ āĻĻā§‡āĻ“ā§ŸāĻž āĻšāĻ˛ā§‹ āĻāĻŦāĻ‚ āĻ•āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻŦā§āĻāĻžāĻ¨ā§‹ āĻšāĻ˛ā§‹ āĻ•ā§‹āĻ¨ āĻ˛āĻžāĻ‡āĻ¨ āĻ•āĻŋ āĻ•āĻžāĻœā§‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻšāĻšā§āĻ›ā§‡āĨ¤

// unshift method
unshift(value) {
    // āĻāĻ–āĻžāĻ¨ā§‡ āĻ¨āĻ¤ā§āĻ¨ node āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻšāĻšā§āĻ›ā§‡āĨ¤ āĻ¯āĻ–āĻ¨ unshift method call āĻ•āĻ°āĻž āĻšāĻŦā§‡ āĻ¤āĻ–āĻ¨ āĻ†āĻĒāĻ¨āĻŋ āĻāĻ•āĻŸāĻŋ value āĻĻāĻŋāĻŦā§‡āĻ¨ āĻ†āĻ° āĻ“āĻ‡ value āĻĻāĻŋā§Ÿā§‡āĻ‡ āĻāĻ‡ āĻ¨āĻ¤ā§āĻ¨ node āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻšāĻšā§āĻ›ā§‡āĨ¤
    let newNode = {
      head: value,
      next: null,
    };

    // āĻšā§‡āĻ• āĻ•āĻ°āĻž āĻšāĻšā§āĻ›ā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ˛āĻŋāĻ¸ā§āĻŸ āĻ•āĻŋ emptyāĨ¤ āĻ¯āĻĻāĻŋ empty āĻšā§Ÿ āĻ¤āĻžāĻšāĻ˛ā§‡ if āĻāĻ° āĻ•āĻžāĻœ āĻ•āĻ°āĻŦā§‡ āĻ¨āĻž āĻšāĻ˛ā§‡ else āĻāĻ° āĻ•āĻžāĻœ āĻ•āĻ°āĻŦā§‡āĨ¤
    if (this.isEmpty()) {
      // āĻāĻ–āĻ¨ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ˛āĻŋāĻ¸ā§āĻŸā§‡āĻ° head āĻ¯ā§‡āĻŸāĻž āĻ°ā§Ÿā§‡āĻ›ā§‡ āĻ¸ā§‡āĻŸāĻžāĻ° value āĻšāĻŋāĻ¸ā§‡āĻŦā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ¨āĻ¤ā§āĻ¨ node āĻ•ā§‡ āĻĻā§‡ā§ŸāĻž āĻšāĻ˛ā§‹
      this.head = newNode;

      // āĻāĻ–āĻ¨ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ˛āĻŋāĻ¸ā§āĻŸā§‡āĻ° tail āĻ¯ā§‡āĻŸāĻž āĻ°ā§Ÿā§‡āĻ›ā§‡ āĻ¸ā§‡āĻŸāĻžāĻ° value āĻšāĻŋāĻ¸ā§‡āĻŦā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ¨āĻ¤ā§āĻ¨ node āĻ•ā§‡ āĻĻā§‡ā§ŸāĻž āĻšāĻ˛ā§‹
      this.tail = newNode;
    } else {
      // āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ¨āĻ¤ā§āĻ¨ node āĻ¯āĻ–āĻ¨ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡āĻ›āĻŋāĻ˛āĻžāĻŽ āĻ¤āĻ–āĻ¨ āĻ¨āĻ¤ā§āĻ¨ node āĻāĻ° next āĻ•ā§‡ null āĻ°ā§‡āĻ–ā§‡āĻ›āĻŋāĻ˛āĻžāĻŽ āĻ¤āĻžāĻ‡ āĻāĻ–āĻ¨ āĻ“āĻ‡ āĻ¨āĻ¤ā§āĻ¨ node āĻāĻ° next āĻāĻ° value āĻšāĻŋāĻ¸ā§‡āĻŦā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ†āĻ—ā§‡āĻ° head āĻ•ā§‡ āĻĻāĻŋā§Ÿā§‡ āĻĻāĻŋāĻšā§āĻ›āĻŋāĨ¤
      newNode.next = this.head;

      // āĻāĻ–āĻžāĻ¨ā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ˛āĻŋāĻ¸ā§āĻŸā§‡āĻ° head āĻāĻ° āĻœāĻžā§ŸāĻ—āĻžā§Ÿ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ¨āĻ¤ā§āĻ¨ node āĻ•ā§‡ āĻŦāĻ¸āĻŋā§Ÿā§‡ āĻĻāĻŋāĻšā§āĻ›āĻŋāĨ¤
      this.head = newNode;

      // āĻāĻŦāĻžāĻ° āĻāĻ•āĻŸāĻŋ node āĻ¯ā§āĻ•ā§āĻ¤ āĻšāĻ˛ā§‡ āĻ¤ā§‹ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ˛āĻŋāĻ¸ā§āĻŸā§‡āĻ° length āĻ“ āĻŦā§ƒāĻĻā§āĻ§āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ āĻ¸ā§‡āĻŸāĻžāĻ‡ āĻāĻ–āĻžāĻ¨ā§‡ āĻ•āĻ°āĻž āĻšāĻšā§āĻ›ā§‡āĨ¤
      this.length++;
    }
  }

Doubly Linked List

reference image


> āĻ‰āĻĒāĻ°ā§‡āĻ° āĻ›āĻŦāĻŋāĻŸāĻŋ āĻ˛āĻ•ā§āĻˇ āĻ•āĻ°ā§āĻ¨, Doubly linked list āĻāĻ° āĻ¸āĻŦāĻ•āĻŋāĻ›ā§ āĻ¸ā§‡āĻ‡āĻŽ singly linked list āĻāĻ° āĻŽāĻ¤ā§‹, āĻļā§āĻ§ā§ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻŸāĻŋ āĻšāĻšā§āĻ›ā§‡ singly linked list āĻ āĻ†āĻŽāĻ°āĻž previous āĻ¨āĻžāĻŽā§‡ āĻ•ā§‹āĻ¨ā§‹ āĻœāĻŋāĻ¨āĻŋāĻ¸ āĻĒā§‡āĻ¤āĻžāĻŽ āĻ¨āĻž āĻ•āĻŋāĻ¨ā§āĻ¤ā§ Doubly linked list āĻ āĻ†āĻŽāĻ°āĻž previous āĻ¨āĻžāĻŽā§‡ āĻāĻ•āĻŸāĻž property āĻĒāĻžāĻšā§āĻ›āĻŋ āĻ¯ā§‡āĻŸāĻžāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° currentNode āĻāĻ° āĻ†āĻ—ā§‡āĻ° node āĻ•ā§‹āĻ¨āĻŸāĻŋ āĻ¸ā§‡āĻŸāĻž āĻœāĻžāĻ¨āĻ¤ā§‡ āĻĒāĻžāĻ°āĻŦā§‹āĨ¤ āĻ¤āĻžāĻ›āĻžā§œāĻž āĻŦāĻžāĻ•āĻŋ āĻ¸āĻŦ singly linked list āĻāĻ° āĻŽāĻ¤ā§‹āĨ¤

Doubly Linked List - Add the node in the last position of the list using the PUSH method

> Singly Linked List āĻ āĻ†āĻŽāĻ°āĻž āĻ¯ā§‡āĻ­āĻžāĻŦā§‡ push method āĻ‡āĻŽāĻĒā§āĻ˛ā§‡āĻŽā§‡āĻ¨ā§āĻŸ āĻ•āĻ°ā§‡ āĻ˛āĻŋāĻ¸ā§āĻŸā§‡āĻ° āĻļā§‡āĻˇā§‡āĻ° āĻĻāĻŋāĻ•ā§‡ node āĻ¯ā§āĻ•ā§āĻ¤ āĻ•āĻ°ā§‡āĻ›āĻŋāĻ˛āĻžāĻŽ āĻ āĻŋāĻ• āĻ¸ā§‡āĻ‡āĻ­āĻžāĻŦā§‡āĻ‡ Doubly Linked List āĻ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°āĻŦā§‹, āĻļā§āĻ§ā§ āĻāĻ•āĻŸāĻŋ āĻœāĻŋāĻ¨āĻŋāĻ¸ āĻŦāĻžā§œāĻŦā§‡ āĻ†āĻ°āĻž āĻ¸ā§‡āĻŸāĻž āĻšāĻšā§āĻ›ā§‡ previous point. āĻ‰āĻĒāĻ°ā§‡ āĻŦāĻ˛āĻž āĻšā§Ÿā§‡āĻ›ā§‡ āĻ¯ā§‡ Doubly Linked List āĻ āĻŽā§‹āĻŸ āĻ¤āĻŋāĻ¨āĻŸāĻŋ āĻĒā§āĻ°āĻĒāĻžāĻ°ā§āĻŸāĻŋ āĻĒāĻžāĻŦā§‹ (value, next, prev)āĨ¤ āĻ¸ā§‡āĻ‡āĻŽ āĻ­āĻžāĻŦā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° head āĻāĻŦāĻ‚ tail āĻĨāĻžāĻ•āĻŦā§‡ āĻ˛āĻŋāĻ¸ā§āĻŸā§‡ āĻāĻŦāĻ‚ length āĻĨāĻžāĻ•āĻŦā§‡āĨ¤ āĻĒā§āĻ°āĻĨāĻŽā§‡ āĻ†āĻŽāĻ°āĻž āĻšā§‡āĻ• āĻ•āĻ°ā§‡ āĻ¨āĻŋāĻŦā§‹ āĻ¯ā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ˛āĻŋāĻ¸ā§āĻŸā§‡ āĻ•ā§‹āĻ¨ā§‹ node āĻ†āĻ›ā§‡ āĻ•āĻŋ āĻ¨āĻž, āĻ¯āĻĻāĻŋ āĻ¨āĻž āĻĨāĻžāĻ•ā§‡ āĻ¤āĻžāĻšāĻ˛ā§‡ āĻ¤ā§‹ āĻ†āĻŽāĻ°āĻž āĻ¯ā§‡ node āĻ¯ā§āĻ•ā§āĻ¤ āĻ•āĻ°āĻŦā§‹ āĻ¸ā§‡āĻŸāĻž āĻšāĻŦā§‡ head āĻāĻŦāĻ‚ āĻ¸ā§‡āĻŸāĻžāĻ‡ āĻšāĻŦā§‡ tail āĻ†āĻ° āĻĒā§āĻ°āĻĨāĻŽ node āĻāĻ° next value āĻĨāĻžāĻ•āĻŦā§‡ null āĻāĻŦāĻ‚ prev value āĻĨāĻžāĻ•āĻŦā§‡ nullāĨ¤ āĻ¤āĻžāĻ°āĻĒāĻ° āĻ¯āĻĻāĻŋ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ˛āĻŋāĻ¸ā§āĻŸā§‡ āĻ†āĻ—ā§‡ āĻĨā§‡āĻ•ā§‡ āĻāĻ•āĻŸāĻŋ node āĻ¯ā§āĻ•ā§āĻ¤ āĻ•āĻ°āĻž āĻĨāĻžāĻ•ā§‡ āĻ¤āĻžāĻšāĻ˛ā§‡ āĻ†āĻŽāĻ°āĻž āĻ¯āĻ–āĻ¨ āĻ†āĻ°ā§‡āĻ•āĻŸāĻŋ āĻ¨āĻ¤ā§āĻ¨ node āĻ¯ā§āĻ•ā§āĻ¤ āĻ•āĻ°āĻŦā§‹ āĻ¤āĻ–āĻ¨ āĻ¤ā§‹ āĻ“āĻ‡ node āĻāĻ° next āĻāĻŦāĻ‚ prev value āĻ…āĻŦāĻļā§āĻ¯āĻ‡ āĻĨāĻžāĻ•āĻŦā§‡āĨ¤ āĻ†āĻ° āĻ¸ā§‡āĻŸāĻž āĻ†āĻŽāĻ°āĻž āĻāĻ­āĻžāĻŦā§‡ āĻ•āĻ°āĻŦā§‹ āĻ¯ā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻ¯ā§‡ tail āĻ°ā§Ÿā§‡āĻ›ā§‡ āĻ¸ā§‡āĻŸāĻžāĻ° next āĻāĻ° value āĻ¸āĻŽāĻžāĻ¨ āĻ•āĻ°ā§‡ āĻĻāĻŋāĻŦā§‹ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ¨āĻ¤ā§āĻ¨ āĻ¯ā§‡ node āĻ¯ā§āĻ•ā§āĻ¤ āĻšāĻ¤ā§‡ āĻšāĻžāĻšā§āĻ›ā§‡ āĻ¸ā§‡āĻŸāĻžāĻ•ā§‡ āĻāĻŦāĻ‚ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ¨āĻ¤ā§āĻ¨ node āĻāĻ° prev value āĻ¸ā§‡āĻŸ āĻ•āĻ°ā§‡ āĻĻāĻŋāĻŦā§‹ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ¯ā§‡ tail āĻ°ā§Ÿā§‡āĻ›ā§‡ āĻ¸ā§‡āĻŸāĻžāĻ•ā§‡ āĻāĻŦāĻ‚ āĻ…āĻŦāĻļā§‡āĻˇā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° tail āĻāĻ° value āĻ¸ā§‡āĻŸ āĻ•āĻ°ā§‡ āĻĻāĻŋāĻŦā§‹ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ¨āĻ¤ā§āĻ¨ āĻ¯ā§‡ node āĻ¯ā§āĻ•ā§āĻ¤ āĻšāĻ¤ā§‡ āĻšāĻžāĻšā§āĻ›ā§‡ āĻ¸ā§‡āĻŸāĻžāĻ•ā§‡, āĻŦā§āĻ¯āĻžāĻ¸ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ•āĻžāĻœ āĻšā§Ÿā§‡ āĻ—ā§‡āĻ›ā§‡ āĻ¸āĻŦāĻžāĻ° āĻļā§‡āĻˇā§‡ āĻ†āĻŽāĻ°āĻž āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ˛āĻŋāĻ¸ā§āĻŸā§‡āĻ° length āĻŦāĻžā§œāĻŋā§Ÿā§‡ āĻĻāĻŋāĻŦā§‹āĨ¤

āĻ¨āĻŋāĻšā§‡āĻ° āĻ•ā§‹āĻĄā§‡āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻ†āĻ°ā§‹ āĻ­āĻžāĻ˛ā§‹āĻ­āĻžāĻŦā§‡ Doubly Linked List āĻ Push method āĻ‡āĻŽāĻĒā§āĻ˛āĻŋāĻŽā§‡āĻ¨ā§āĻŸ āĻ•āĻ°āĻž āĻšāĻ˛ā§‹āĨ¤

// push method implement

// āĻāĻ•āĻŸāĻž āĻŸā§‡āĻŽā§āĻĒāĻ˛ā§‡āĻŸ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡ āĻ¨āĻŋāĻ˛āĻžāĻŽ āĻ¯āĻžāĻ¤ā§‡ āĻ†āĻ˛āĻžāĻĻāĻž āĻ•āĻ°ā§‡ āĻ†āĻŦāĻžāĻ° āĻ¸āĻŦ āĻĒā§āĻ°āĻĒāĻžāĻ°ā§āĻŸāĻŋ āĻ—ā§āĻ˛ā§‹ āĻ˛āĻŋāĻ–āĻ¤ā§‡ āĻ¨āĻž āĻšā§ŸāĨ¤
class NodeTemplete {
  constructor(value) {
    this.value = value;
    this.next = null;
    this.prev = null;
  }
}

// āĻāĻŸāĻž āĻšāĻšā§āĻ›ā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻŽā§‡āĻ‡āĻ¨ Doubly Linked List āĻ•ā§āĻ˛āĻžāĻ¸āĨ¤
class DoublyLinkedList {
  constructor() {
    this.head = null;
    this.tail = null;
    this.length = 0;
  }

  // āĻšā§‡āĻ• āĻ•āĻ°ā§‡ āĻ¨āĻŋāĻšā§āĻ›āĻŋ āĻ¯ā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ˛āĻŋāĻ¸ā§āĻŸ āĻ•āĻŋ empty āĻ¨āĻžāĻ•āĻŋāĨ¤ āĻāĻŸāĻž āĻ†āĻŽāĻžāĻĻā§‡āĻ° true or false āĻ°āĻŋāĻŸāĻžāĻ°ā§āĻ¨ āĻ•āĻ°āĻŦā§‡āĨ¤
  isEmpty() {
    return this.length === 0;
  }

  // āĻāĻ‡āĻŸāĻž āĻšāĻšā§āĻ›ā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° push method
  push(value) {
    // āĻāĻ–āĻžāĻ¨ā§‡ āĻ†āĻŽāĻ°āĻž āĻ¯ā§‡ value āĻĒāĻžāĻšā§āĻ›āĻŋ āĻ¤āĻž āĻĻāĻŋā§Ÿā§‡ āĻ¨āĻ¤ā§āĻ¨ āĻāĻ•āĻŸāĻŋ node āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡ āĻ¨āĻŋāĻšā§āĻ›āĻŋāĨ¤ āĻ†āĻŽāĻ°āĻž āĻ†āĻ—ā§‡ āĻ¯ā§‡ āĻŸā§‡āĻŽā§āĻĒāĻ˛ā§‡āĻŸ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡āĻ›āĻŋāĻ˛āĻžāĻŽ āĻ¸ā§‡āĻŸāĻž āĻāĻ–āĻžāĻ¨ā§‡ call āĻ•āĻ°āĻ˛āĻžāĻŽ āĻāĻŦāĻ‚ āĻ†āĻŽāĻžāĻĻā§‡āĻ° value āĻŸāĻŋ āĻĻāĻŋā§Ÿā§‡ āĻĻāĻŋāĻ˛āĻžāĻŽāĨ¤
    let newNode = new NodeTemplete(value);

    // āĻ†āĻŦāĻžāĻ° āĻšā§‡āĻ• āĻ•āĻ°āĻž āĻšāĻšā§āĻ›ā§‡, āĻ¯āĻĻāĻŋ āĻ†āĻŽāĻžāĻĻā§‡āĻ° head āĻ¨āĻž āĻĨāĻžāĻ•ā§‡ āĻ¤āĻžāĻšāĻ˛ā§‡ if āĻāĻ° āĻ•āĻžāĻœ āĻ•āĻ°āĻŦā§‡ ( head null āĻĨāĻžāĻ•āĻ˛ā§‡ āĻ†āĻ°āĻ•āĻŋ ) āĻ†āĻ° āĻ¯āĻĻāĻŋ head āĻ āĻ•ā§‹āĻ¨ā§‹ node āĻĨā§‡āĻ•ā§‡ āĻĨāĻžāĻ•ā§‡ āĻ¤āĻžāĻšāĻ˛ā§‡ else āĻāĻ° āĻ•āĻžāĻœ āĻ•āĻ°āĻŦā§‡āĨ¤
    if (!this.head) {
      // āĻāĻ–āĻžāĻ¨ā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° head āĻ•āĻ°ā§‡ āĻĻāĻŋāĻ˛āĻžāĻŽ āĻ¨āĻ¤ā§āĻ¨ āĻ¯ā§‡ node āĻ¸ā§‡āĻŸāĻžāĨ¤
      this.head = newNode;

      // āĻāĻ–āĻžāĻ¨ā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° tail āĻ•āĻ°ā§‡ āĻĻāĻŋāĻ˛āĻžāĻŽ āĻ¨āĻ¤ā§āĻ¨ āĻ¯ā§‡ node āĻ¸ā§‡āĻŸāĻžāĨ¤
      this.tail = newNode;
    } else {
      // āĻāĻ–āĻžāĻ¨ā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ¯ā§‡ tail āĻ°ā§Ÿā§‡āĻ›ā§‡ āĻ¸ā§‡āĻŸāĻžāĻ° next āĻĒā§āĻ°āĻĒāĻžāĻ°ā§āĻŸāĻŋāĻ° value āĻ•āĻ°ā§‡ āĻĻāĻŋāĻ˛āĻžāĻŽ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ¨āĻ¤ā§āĻ¨ node āĻ•ā§‡āĨ¤
      this.tail.next = newNode;

      // āĻāĻ–āĻžāĻ¨ā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ¯ā§‡ āĻ¨āĻ¤ā§āĻ¨ node āĻ°ā§Ÿā§‡āĻ›ā§‡ āĻ¸ā§‡āĻŸāĻžāĻ° previous value āĻ¸ā§‡āĻŸ āĻ•āĻ°ā§‡ āĻĻāĻŋāĻ˛āĻžāĻŽ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ†āĻ—ā§‡āĻ° āĻ¯ā§‡ tail āĻ›āĻŋāĻ˛ā§‹ āĻ¸ā§‡āĻŸāĻžāĻ•ā§‡āĨ¤
      newNode.prev = this.tail;

      // āĻ¤āĻžāĻ°āĻĒāĻ° āĻ¯ā§‡āĻšā§‡āĻ¤ā§ āĻ†āĻŽāĻ°āĻž āĻ¨āĻ¤ā§āĻ¨ āĻāĻ•āĻŸāĻŋ node āĻļā§‡āĻˇā§‡āĻ° āĻĻāĻŋāĻ•ā§‡ āĻ¯ā§āĻ•ā§āĻ¤ āĻ•āĻ°āĻ˛āĻžāĻŽ, āĻ¤āĻžāĻ‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ˛āĻŋāĻ¸ā§āĻŸā§‡āĻ° tail āĻ•āĻ°ā§‡ āĻĻāĻŋāĻ˛āĻžāĻŽ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ¨āĻ¤ā§āĻ¨ node āĻ•ā§‡āĨ¤
      this.tail = newNode;
    }

    // āĻāĻ–āĻ¨ āĻāĻ•āĻŸāĻŋ node āĻ¯ā§āĻ•ā§āĻ¤ āĻ•āĻ°āĻ˛ā§‡ āĻ¤ā§‹ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ˛āĻŋāĻ¸ā§āĻŸā§‡āĻ° length āĻ“ āĻŦāĻžā§œāĻžāĻ¤ā§‡ āĻšāĻŦā§‡ āĻ¸ā§‡āĻŸāĻž āĻāĻ–āĻžāĻ¨ā§‡ āĻ•āĻ°āĻ˛āĻžāĻŽāĨ¤
    this.length++;
  }
}

let test = new DoublyLinkedList();
test.push(5);
test.push(10);

console.log(test);

Doubly Linked List - Delete the node in the last position of the list using the POP method

> Doubly Linked List āĻ āĻ˛āĻžāĻ¸ā§āĻŸā§‡āĻ° āĻĻāĻŋāĻ• āĻĨā§‡āĻ•ā§‡ āĻ•ā§‹āĻ¨ā§‹ node āĻĄāĻŋāĻ˛āĻŋāĻŸ āĻ•āĻ°āĻž āĻ¸ā§‡āĻ‡āĻŽ Singly Linked List āĻāĻ° āĻŽāĻ¤ā§‹āĻ‡ āĻļā§āĻ§ā§ āĻĒāĻžāĻ°ā§āĻĨāĻ•ā§āĻ¯ āĻšāĻšā§āĻ›ā§‡ Doubly Linked List āĻ prev āĻ¯ā§‡ āĻ†āĻ°ā§‡āĻ•āĻŸāĻŋ value āĻĨāĻžāĻ•ā§‡ āĻ¸ā§‡āĻŸāĻžāĨ¤ āĻ“āĻ•ā§‡, āĻ†āĻŽāĻ°āĻž Singly Linked List āĻ āĻ˛āĻžāĻ¸ā§āĻŸā§‡āĻ° āĻĻāĻŋāĻ•ā§‡āĻ° node āĻĄāĻŋāĻ˛āĻŋāĻŸ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻšā§‡āĻ• āĻ•āĻ°āĻ¤āĻžāĻŽ āĻ¯ā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° currentNode ( currentNode āĻ¨āĻžāĻŽā§‡ āĻāĻ•āĻŸāĻŋ variable āĻ¨āĻŋāĻ¤āĻžāĻŽ āĻāĻŦāĻ‚ āĻāĻ° value āĻ¸ā§‡āĻŸ āĻ•āĻ°ā§‡ āĻĻāĻŋāĻ¤āĻžāĻŽ head āĻ•ā§‡ ) āĻ•āĻŋ āĻ†āĻŽāĻžāĻĻā§‡āĻ° tail āĻāĻ° āĻ¸āĻŽāĻžāĻ¨, āĻ¯āĻĻāĻŋ āĻ¸āĻŽāĻžāĻ¨ āĻšā§Ÿ āĻ¤āĻžāĻšāĻ˛ā§‡ āĻ†āĻŽāĻ°āĻž currentNode āĻŸāĻŋāĻ•ā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° tail āĻŦāĻžāĻ¨āĻŋā§Ÿā§‡ āĻĻāĻŋāĻ¤āĻžāĻŽ āĻāĻŦāĻ‚ currentNode āĻāĻ° next āĻ•āĻ°ā§‡ āĻĻāĻŋāĻ¤āĻžāĻŽ nullāĨ¤ āĻ•āĻŋāĻ¨ā§āĻ¤ā§ Doubly Linked List āĻ āĻāĻ° āĻ•āĻŋāĻ›ā§āĻŸāĻž āĻŦā§āĻ¯āĻ¤āĻŋāĻ•ā§āĻ°āĻŽāĨ¤ āĻ†āĻŽāĻ°āĻž Doubly Linked List āĻāĻ­āĻžāĻŦā§‡ āĻ•āĻ°āĻŦā§‹... āĻĒā§āĻ°āĻĨāĻŽā§‡ āĻšā§‡āĻ• āĻ•āĻ°ā§‡ āĻ¨āĻŋāĻŦā§‹ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ¯āĻĻāĻŋ āĻ•ā§‹āĻ¨ā§‹ node āĻ¨āĻž āĻĨāĻžāĻ•ā§‡ āĻ¤āĻžāĻšāĻ˛ā§‡ āĻ†āĻŽāĻ°āĻž āĻœāĻžāĻ¸ā§āĻŸ null āĻ°āĻŋāĻŸāĻžāĻ°ā§āĻ¨ āĻ•āĻ°ā§‡ āĻĻāĻŋāĻŦā§‹āĨ¤ āĻ†āĻ° āĻ¯āĻĻāĻŋ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻ•āĻŸāĻŋ node āĻĨā§‡āĻ•ā§‡ āĻĨāĻžāĻ•ā§‡ āĻ¤āĻžāĻšāĻ˛ā§‡ āĻ†āĻŽāĻ°āĻž āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ˛āĻŋāĻ¸ā§āĻŸā§‡āĻ° head āĻāĻŦāĻ‚ tail āĻ•ā§‡ null āĻ•āĻ°ā§‡ āĻĻāĻŋāĻŦā§‹ ( āĻŽāĻžāĻ¨ā§‡ āĻ“āĻ‡ node āĻŸāĻŋ āĻĄāĻŋāĻ˛āĻŋāĻŸ āĻšā§Ÿā§‡ āĻ—ā§‡āĻ›ā§‡ )āĨ¤ āĻāĻŦāĻžāĻ° āĻ†āĻ¸āĻŋ āĻŽā§āĻ˛ āĻĄāĻŋāĻ˛āĻŋāĻŸā§‡āĻļāĻ¨ā§‡, āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ˛āĻŋāĻ¸ā§āĻŸā§‡āĻ° tail āĻ¯ā§‡āĻŸāĻž āĻ†āĻ›ā§‡ āĻ¸ā§‡āĻŸāĻž āĻĒā§āĻ°āĻĨāĻŽā§‡ āĻ†āĻŽāĻ°āĻž āĻāĻ•āĻŸāĻŋ variable āĻ āĻ°āĻžāĻ–āĻŦā§‹āĨ¤ āĻ¤āĻžāĻ°āĻĒāĻ° āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ˛āĻŋāĻ¸ā§āĻŸā§‡āĻ° tail āĻ•āĻ°ā§‡ āĻĻāĻŋāĻŦā§‹ āĻ¯ā§‡ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ā§‡ tail āĻ†āĻ›ā§‡ āĻ¤āĻžāĻ° prev āĻ•ā§‡ ( āĻŽāĻžāĻ¨ā§‡ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ tail āĻāĻ° previous value āĻ¯ā§‡āĻŸāĻž āĻ†āĻ›ā§‡ āĻ“āĻ‡āĻŸāĻžāĻ•ā§‡ )āĨ¤ āĻāĻŦāĻžāĻ° āĻ†āĻŽāĻ°āĻž āĻ¤ā§‹ āĻ¸āĻŦ āĻ˛āĻžāĻ¸ā§āĻŸā§‡āĻ° node āĻŸāĻŋ āĻĄāĻŋāĻ˛āĻŋāĻŸ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻžāĻšā§āĻ›āĻŋ āĻāĻŦāĻ‚ āĻ†āĻŽāĻ°āĻž āĻœāĻžāĻ¨āĻŋ āĻ¯ā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ¯ā§‡ tail āĻ°ā§Ÿā§‡āĻ›ā§‡ āĻ¤āĻžāĻ° next value āĻšāĻšā§āĻ›ā§‡ null āĻ¤āĻžāĻ‡ āĻ†āĻŽāĻ°āĻž āĻ¯ā§‡āĻšā§‡āĻ¤ā§ āĻāĻ–āĻ¨ āĻ¨āĻ¤ā§āĻ¨ tail āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡ āĻ¨āĻŋā§Ÿā§‡āĻ›āĻŋ āĻ¤āĻžāĻ‡ āĻ“āĻ‡ tail āĻāĻ° next value āĻ•āĻ°ā§‡ āĻĻāĻŋāĻŦā§‹ nullāĨ¤ āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻāĻ–āĻ¨ā§‹ āĻāĻ•āĻŸāĻŋ āĻ•āĻžāĻœ āĻŦāĻžāĻ•āĻŋ āĻ†āĻ›ā§‡... āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ†āĻ—ā§‡āĻ° āĻ¯ā§‡ tail āĻ›āĻŋāĻ˛ā§‹ ( āĻŽāĻžāĻ¨ā§‡ āĻĄāĻŋāĻ˛āĻŋāĻŸ āĻ•āĻ°āĻžāĻ° āĻ†āĻ—ā§‡ ) āĻ¸ā§‡āĻŸāĻžāĻ° āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻāĻ•āĻŸāĻŋ prev node āĻ›āĻŋāĻ˛ā§‹ āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ†āĻŽāĻ°āĻž āĻ¤ā§‹ āĻāĻ–āĻ¨ āĻ“āĻ‡ tail āĻĄāĻŋāĻ˛āĻŋāĻŸ āĻ•āĻ°ā§‡ āĻĻāĻŋā§Ÿā§‡āĻ›āĻŋ āĻ¤āĻžāĻ‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ“āĻ‡ tail āĻāĻ° prev āĻ•ā§‡ āĻ“ null āĻ•āĻ°ā§‡ āĻĻāĻŋāĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤ āĻŦā§āĻ¯āĻžāĻ¸ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ•āĻžāĻœ āĻšā§Ÿā§‡ āĻ—ā§‡āĻ›ā§‡āĨ¤ āĻāĻŦāĻžāĻ° āĻœāĻžāĻ¸ā§āĻŸ āĻ˛āĻŋāĻ¸ā§āĻŸā§‡āĻ° length āĻ•āĻŽāĻŋā§Ÿā§‡ āĻĻāĻŋāĻ˛ā§‡āĻ‡ āĻšā§Ÿā§‡ āĻ¯āĻžā§ŸāĨ¤

āĻ“āĻ•ā§‡, āĻĒā§‡āĻ°āĻž āĻ¨ā§‡ā§ŸāĻžāĻ° āĻĒā§āĻ°ā§Ÿā§‹āĻœāĻ¨ āĻ¨āĻžāĻ‡ āĻ¨āĻŋāĻšā§‡ āĻ•ā§‹āĻĄ āĻĻāĻŋāĻšā§āĻ›āĻŋ āĻāĻŦāĻ‚ āĻ¸āĻžāĻĨā§‡ āĻ¤ā§‹ āĻ•āĻŽā§‡āĻ¨ā§āĻŸ āĻĨāĻžāĻ•āĻ›ā§‡āĻ‡āĨ¤

// pop method implement
pop() {
    // āĻšā§‡āĻ• āĻ•āĻ°ā§‡ āĻ¨āĻŋāĻšā§āĻ›āĻŋ āĻ˛āĻŋāĻ¸ā§āĻŸ āĻ•āĻŋ āĻĒā§āĻ°ā§‹ āĻ–āĻžāĻ˛āĻŋāĨ¤
    if (!this.head) {
      return null;
    }

    // āĻ¨āĻ¤ā§āĻ¨ āĻāĻ•āĻŸāĻŋ variable āĻ āĻ†āĻŽāĻžāĻĻā§‡āĻ° tail āĻ•ā§‡ āĻ°āĻžāĻ–āĻ˛āĻžāĻŽāĨ¤
    let popNode = this.tail;

    // āĻāĻŦāĻžāĻ° āĻšā§‡āĻ• āĻ•āĻ°ā§‡ āĻ¨āĻŋāĻšā§āĻ›āĻŋ āĻ¯āĻĻāĻŋ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ˛āĻŋāĻ¸ā§āĻŸā§‡ āĻāĻ•āĻŸāĻŋ node āĻĨāĻžāĻ•ā§‡ āĻ¤āĻžāĻšāĻ˛ā§‡ āĻ†āĻŽāĻ°āĻž if āĻāĻ° āĻ•āĻžāĻœ āĻ•āĻ°āĻŦā§‹ āĻ¨āĻžāĻšāĻ˛ā§‡ else āĻāĻ° āĻ•āĻžāĻœāĨ¤
    if (this.head === 1) {
      // head āĻ•ā§‡ null āĻ•āĻ°ā§‡ āĻĻāĻŋāĻšā§āĻ›āĻŋāĨ¤
      this.head = null;

      // tail āĻ•ā§‡ null āĻ•āĻ°ā§‡ āĻĻāĻŋāĻšā§āĻ›āĻŋāĨ¤
      this.tail = null;
    } else {

      // āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ˛āĻŋāĻ¸ā§āĻŸā§‡āĻ° āĻ¯ā§‡ tail āĻšāĻŦā§‡ āĻ¸ā§‡ āĻšāĻšā§āĻ›ā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ˛āĻŋāĻ¸ā§āĻŸā§‡āĻ° āĻ†āĻ—ā§‡ āĻ¯ā§‡ tail āĻ›āĻŋāĻ˛ā§‹ āĻ¤āĻžāĻ° previous āĻ āĻĨāĻžāĻ•āĻž nodeāĨ¤
      this.tail = popNode.prev;

      // āĻāĻŦāĻ‚ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ˛āĻŋāĻ¸ā§āĻŸā§‡āĻ° āĻ†āĻ—ā§‡āĻ° tail āĻāĻ° next āĻāĻ° value āĻ•āĻ°ā§‡ āĻĻāĻŋāĻšā§āĻ›āĻŋ nullāĨ¤
      popNode.next = null;

      // āĻāĻŦāĻ‚ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ˛āĻŋāĻ¸ā§āĻŸā§‡āĻ° āĻ†āĻ—ā§‡āĻ° tail āĻ āĻĨāĻžāĻ•āĻž prev āĻ•ā§‡ āĻ“ null āĻ•āĻ°ā§‡ āĻĻāĻŋāĻšā§āĻ›āĻŋāĨ¤
      popNode.prev = null;
    }

    // āĻ˛āĻŋāĻ¸ā§āĻŸā§‡āĻ° length āĻ•āĻŽāĻžāĻšā§āĻ›āĻŋāĨ¤
    this.length--;

    // āĻ¸āĻŦāĻžāĻ° āĻļā§‡āĻˇā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ¨āĻ¤ā§āĻ¨ āĻ¯ā§‡ tail āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ˛āĻžāĻŽ āĻ¸ā§‡āĻŸāĻž āĻ°āĻŋāĻŸāĻžāĻ°ā§āĻ¨ āĻ•āĻ°ā§‡ āĻĻāĻŋāĻšā§āĻ›āĻŋāĨ¤
    return popNode;
  }

Doubly Linked List - Add the node in the first position of the list using the UNSHIFT method

> āĻ¸āĻ‚āĻ•ā§āĻˇā§‡āĻĒā§‡ āĻŦā§āĻāĻžāĻ° āĻšā§‡āĻˇā§āĻŸāĻž āĻ•āĻ°āĻŋ āĻ†āĻŽāĻ°āĻž, āĻ¯ā§‡āĻšā§‡āĻ¤ā§ āĻ†āĻŽāĻžāĻĻā§‡āĻ° Doubly linked list āĻ previous node āĻ°ā§Ÿā§‡āĻ›ā§‡ āĻ¤āĻžāĻ‡ āĻāĻŸāĻŋ Singly linke list āĻĨā§‡āĻ•ā§‡ āĻ­āĻŋāĻ¨ā§āĻ¨ āĻāĻŦāĻ‚ āĻāĻŸāĻŋāĻ¤ā§‡ Push, Pop, Unshift, Shift āĻāĻ—ā§āĻ˛ā§‹ āĻ‡āĻŽāĻĒā§āĻ˛āĻŋāĻŽā§‡āĻ¨ā§āĻŸ āĻ•āĻ°āĻžāĻ“ āĻāĻ•āĻŸā§ āĻ­āĻŋāĻ¨ā§āĻ¨ Singly linked list āĻĨā§‡āĻ•ā§‡āĨ¤ āĻ“āĻ•ā§‡ āĻ•āĻžāĻœā§‡āĻ° āĻ•āĻĨāĻžā§Ÿ āĻ†āĻ¸āĻŋ, āĻ†āĻŽāĻ°āĻž āĻāĻ–āĻ¨ Unshift āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻ˛āĻŋāĻ¸ā§āĻŸā§‡āĻ° āĻĒā§āĻ°āĻĨāĻŽ āĻĻāĻŋāĻ•ā§‡ node āĻ¯ā§āĻ•ā§āĻ¤ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻžāĻšā§āĻ›āĻŋ āĻ¤āĻžāĻ‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻāĻŸāĻŋ āĻ‡āĻŽāĻĒā§āĻ˛āĻŋāĻŽā§‡āĻ¨ā§āĻŸ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤ āĻ†āĻŽāĻ°āĻž āĻāĻŸāĻž āĻ•āĻ°āĻŦā§‹ āĻ¯ā§‡... āĻĒā§āĻ°āĻĨāĻŽā§‡ āĻ¤ā§‹ āĻšā§‡āĻ• āĻ•āĻ°ā§‡ āĻ¨āĻŋāĻŦā§‹ āĻ¯ā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ˛āĻŋāĻ¸ā§āĻŸā§‡ āĻ•ā§‹āĻ¨ā§‹ node āĻ†āĻ›ā§‡ āĻ•āĻŋ āĻ¨āĻž āĻāĻŦāĻ‚ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ¨āĻ¤ā§āĻ¨ node āĻ•ā§‡ āĻāĻ•āĻŸāĻŋ variable āĻ āĻ¸ā§āĻŸā§‹āĻ° āĻ•āĻ°ā§‡ āĻ°āĻžāĻ–āĻŦā§‹āĨ¤ āĻ¤āĻžāĻ°āĻĒāĻ° āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ˛āĻŋāĻ¸ā§āĻŸā§‡āĻ° āĻ¯ā§‡ head āĻ°ā§Ÿā§‡āĻ›ā§‡ āĻ¤āĻžāĻ° āĻ¯ā§‡ prev node āĻ°ā§Ÿā§‡āĻ›ā§‡ āĻ¤āĻžāĻ•ā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ¨āĻ¤ā§āĻ¨ node āĻ•āĻ°ā§‡ āĻĻāĻŋāĻŦā§‹ ( āĻļā§āĻ°ā§āĻ¤ā§‡ prev āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ›āĻŋāĻ˛ā§‹ null )āĨ¤ āĻāĻ°āĻĒāĻ° āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ¨āĻ¤ā§āĻ¨ node āĻāĻ° next node āĻ•āĻ°ā§‡ āĻĻāĻŋāĻŦā§‹ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ¯ā§‡ head āĻ°ā§Ÿā§‡āĻ›ā§‡ āĻĨāĻžāĻ•ā§‡ āĻāĻŦāĻ‚ āĻ†āĻŽāĻ°āĻž āĻ¯āĻ–āĻ¨ āĻ¨āĻ¤ā§āĻ¨ node āĻ˛āĻŋāĻ¸ā§āĻŸā§‡āĻ° āĻĒā§āĻ°āĻĨāĻŽā§‡ āĻ¯ā§āĻ•ā§āĻ¤ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻžāĻšā§āĻ›āĻŋ āĻ¸ā§‡āĻšā§‡āĻ¤ā§ āĻ†āĻŽāĻ°āĻž āĻ¯ā§‡ node āĻ¯ā§āĻ•ā§āĻ¤ āĻ•āĻ°āĻŦā§‹ āĻ¸ā§‡āĻŸāĻŋāĻ‡ āĻ¤ā§‹ āĻ†āĻŽāĻžāĻĻā§‡āĻ° head āĻšāĻŦā§‡ āĻ¤āĻžāĻ‡ āĻ¨āĻž ? āĻāĻœāĻ¨ā§āĻ¯āĻ‡ āĻāĻŦāĻžāĻ° āĻ†āĻŽāĻ°āĻž āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ˛āĻŋāĻ¸ā§āĻŸā§‡āĻ° head āĻ•āĻ°ā§‡ āĻĻāĻŋāĻŦā§‹ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ¯ā§‡ āĻ¨āĻ¤ā§āĻ¨ node āĻ¤āĻžāĻ•ā§‡ āĻŦā§āĻ¯āĻžāĻ¸ āĻ†āĻŽāĻžāĻĻā§‡āĻ° node āĻ¯ā§āĻ•ā§āĻ¤ āĻ•āĻ°āĻž āĻšā§Ÿā§‡ āĻ—ā§‡āĻ›ā§‡āĨ¤

āĻŦā§āĻā§‡āĻ¨āĻ¨āĻŋ! āĻ•ā§‹āĻ¨ā§‹ āĻŦā§āĻ¯āĻžāĻĒāĻžāĻ° āĻ¨āĻž āĻ¨āĻŋāĻšā§‡ āĻ•ā§‹āĻĄ āĻĻā§‡āĻ“ā§ŸāĻž āĻšāĻ˛ā§‹ āĻāĻŦāĻ‚ āĻ¸āĻžāĻĨā§‡ āĻ¤ā§‹ āĻ…āĻŦāĻļā§āĻ¯āĻ‡ āĻ•āĻŽā§‡āĻ¨ā§āĻŸ āĻ•āĻ°āĻž āĻ†āĻ›ā§‡āĨ¤

// unshift method implement

// āĻāĻŸāĻž āĻāĻ•āĻŸāĻŋ āĻŸā§‡āĻŽā§āĻĒāĻ˛ā§‡āĻŸ āĻ¨āĻ¤ā§āĻ¨ node āĻāĻ° āĻœāĻ¨ā§āĻ¯āĨ¤
class NodeTemplete {
  constructor(value) {
    this.value = value;
    this.next = null;
    this.prev = null;
  }
}

unshift(value) {

    // āĻāĻ–āĻžāĻ¨ā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ¨āĻ¤ā§āĻ¨ node āĻāĻ•āĻŸāĻŋ variable āĻāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ°āĻžāĻ–āĻ›āĻŋ āĻāĻŦāĻ‚ āĻ‰āĻĒāĻ°ā§‡ āĻ¯ā§‡ āĻŸā§‡āĻŽā§āĻĒāĻ˛ā§‡āĻŸ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡āĻ›āĻŋāĻ˛āĻžāĻŽ āĻ¸ā§‡āĻŸāĻž call āĻ•āĻ°ā§‡ āĻĻāĻŋā§Ÿā§‡āĻ›āĻŋāĨ¤
    let newNode = new NodeTemplete(value);

    // āĻšā§‡āĻ• āĻ•āĻ°āĻ›āĻŋ āĻ¯āĻĻāĻŋ āĻ•ā§‹āĻ¨ā§‹ node āĻ¨āĻž āĻĨāĻžāĻ•ā§‡ āĻ¤āĻžāĻšāĻ˛ā§‡ if āĻ•āĻžāĻœ āĻ•āĻ°āĻŦā§‡ āĻĨāĻžāĻ•āĻ˛ā§‡ else āĻ•āĻžāĻœ āĻ•āĻ°āĻŦā§‡āĨ¤
    if (!this.head) {

      // āĻ˛āĻŋāĻ¸ā§āĻŸā§‡āĻ° head āĻšā§Ÿā§‡ āĻ¯āĻžāĻŦā§‡ āĻ¨āĻ¤ā§āĻ¨ node
      this.head = newNode;

      // āĻ˛āĻŋāĻ¸ā§āĻŸā§‡āĻ° tail āĻšā§Ÿā§‡ āĻ¯āĻžāĻŦā§‡ āĻ¨āĻ¤ā§āĻ¨ node
      this.tail = newNode;
    } else {

      // āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ˛āĻŋāĻ¸ā§āĻŸā§‡āĻ° āĻ¯ā§‡ head āĻ°ā§Ÿā§‡āĻ›ā§‡ āĻ¤āĻžāĻ° prev āĻ¤ā§‹ null āĻĨāĻžāĻ•āĻŦā§‡ āĻ¤āĻžāĻ‡ āĻ¨āĻž, āĻ¤ā§‹ āĻ†āĻŽāĻ°āĻž āĻ¸ā§‡āĻŸāĻžāĻ•ā§‡ āĻ•āĻ°ā§‡ āĻĻāĻŋāĻšā§āĻ›āĻŋ āĻ¨āĻ¤ā§āĻ¨ nodeāĨ¤ āĻ•āĻžāĻ°āĻŖ āĻ†āĻŽāĻ°āĻž āĻ¤ā§‹ āĻ˛āĻŋāĻ¸ā§āĻŸā§‡āĻ° āĻĒā§āĻ°āĻĨāĻŽā§‡ node āĻ¯ā§āĻ•ā§āĻ¤ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻžāĻšā§āĻ›āĻŋāĨ¤
      this.head.prev = newNode;

      // āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ¨āĻ¤ā§āĻ¨ āĻ¯ā§‡ node āĻ†āĻ›ā§‡ āĻ¸ā§‡āĻŸāĻžāĻ° next āĻ¤ā§‹ āĻ‡āĻ¨āĻŋāĻļāĻŋā§ŸāĻžāĻ˛āĻŋ null āĻĨāĻžāĻ•ā§‡ āĻ¤ā§‹ āĻ†āĻŽāĻ°āĻž āĻ¸ā§‡āĻŸāĻžāĻ•ā§‡ āĻ•āĻ°ā§‡ āĻĻāĻŋāĻšā§āĻ›āĻŋ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ˛āĻŋāĻ¸ā§āĻŸā§‡āĻ° āĻ¯ā§‡ head āĻ†āĻ›ā§‡ āĻ¸ā§‡āĻŸāĻžāĨ¤
      newNode.next = this.head;

      // āĻ¸āĻŦāĻžāĻ° āĻļā§‡āĻˇā§‡ āĻ†āĻŽāĻ°āĻž āĻ†āĻŽāĻžāĻĻā§‡āĻ° head āĻŸāĻž āĻ¤ā§‹ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ āĻāĻŦāĻ‚ āĻ¸ā§‡āĻŸāĻžāĻ‡ āĻ•āĻ°āĻ›āĻŋ head āĻŦāĻžāĻ¨āĻŋā§Ÿā§‡ āĻĻāĻŋāĻšā§āĻ›āĻŋ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ¨āĻ¤ā§āĻ¨ node āĻ•ā§‡āĨ¤
      this.head = newNode;
    }

    // āĻāĻŦāĻ‚ āĻĢāĻžāĻ‡āĻ¨āĻžāĻ˛āĻŋ āĻ˛āĻŋāĻ¸ā§āĻŸā§‡āĻ° length āĻŦāĻžā§œāĻŋā§Ÿā§‡ āĻĻāĻŋāĻšā§āĻ›āĻŋāĨ¤
    this.length++;
  }

Doubly Linked List - Delete the node in the first position of the list using the SHIFT method

> āĻ˛āĻŋāĻ¸ā§āĻŸā§‡āĻ° āĻĒā§āĻ°āĻĨāĻŽ āĻĨā§‡āĻ•ā§‡ node āĻĄāĻŋāĻ˛āĻŋāĻŸ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻĒā§āĻ°āĻĨāĻŽā§‡ āĻ§āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ head āĻ•ā§‡ āĻāĻŦāĻ‚ āĻ¸ā§‡āĻŸāĻžāĻ•ā§‡ āĻāĻ•āĻŸāĻŋ variable āĻāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ¸ā§āĻŸā§‹āĻ° āĻ•āĻ°ā§‡ āĻ°āĻžāĻ–āĻŦā§‹ oldHead āĻ¨āĻžāĻŽā§‡ ( āĻ•āĻžāĻ°āĻŖ āĻ†āĻŽāĻ°āĻž āĻ¯āĻĻāĻŋ āĻĒā§āĻ°āĻĨāĻŽ āĻĨā§‡āĻ•ā§‡ āĻāĻ•āĻŸāĻŋ node āĻĄāĻŋāĻ˛āĻŋāĻŸ āĻ•āĻ°āĻŋ āĻ¤āĻžāĻšāĻ˛ā§‡ āĻ¤ā§‹ āĻ¸ā§‡āĻŸāĻŋ āĻ†āĻŽāĻžāĻĻā§‡āĻ° head āĻ‡ āĻĨāĻžāĻ•āĻŦā§‡ āĻ†āĻ° head āĻ•ā§‡ āĻĄāĻŋāĻ˛āĻŋāĻŸ āĻ•āĻ°ā§‡ āĻĻāĻŋāĻ˛ā§‡ āĻ¤ā§‹ āĻ¨āĻ¤ā§āĻ¨ āĻ†āĻ°ā§‡āĻ•āĻŸāĻŋ node āĻ•ā§‡ head āĻŦāĻžāĻ¨āĻŋā§Ÿā§‡ āĻĻāĻŋāĻ¤ā§‡ āĻšāĻŦā§‡ )āĨ¤ āĻ¤āĻžāĻ°āĻĒāĻ° āĻšā§‡āĻ• āĻ•āĻ°ā§‡ āĻ¨āĻŋāĻŦā§‹ āĻ¯ā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ˛āĻŋāĻ¸ā§āĻŸā§‡ āĻ•ā§‹āĻ¨ā§‹ node āĻ†āĻ›ā§‡ āĻ¨āĻžāĻ•āĻŋ āĻ¨āĻž āĻĨāĻžāĻ•āĻ˛ā§‡ null āĻ°āĻŋāĻŸāĻžāĻ°ā§āĻ¨ āĻ•āĻ°ā§‡ āĻĻāĻŋāĻŦā§‹ āĻāĻŦāĻ‚ āĻ¯āĻĻāĻŋ āĻļā§āĻ§ā§ āĻāĻ•āĻŸāĻŋ node āĻĨāĻžāĻ•ā§‡ āĻ˛āĻŋāĻ¸ā§āĻŸā§‡ āĻ¤āĻžāĻšāĻ˛ā§‡ āĻ¸ā§‡āĻŸāĻžāĻ•ā§‡ āĻĄāĻŋāĻ˛āĻŋāĻŸ āĻ•āĻ°ā§‡ head, tail āĻ•ā§‡ null āĻ•āĻ°ā§‡ āĻĻāĻŋāĻŦā§‹āĨ¤ āĻāĻŦāĻžāĻ°, āĻ†āĻŽāĻ°āĻž āĻ¤ā§‹ āĻĒā§āĻ°āĻĨāĻŽ āĻĨā§‡āĻ•ā§‡ node āĻĄāĻŋāĻ˛āĻŋāĻŸ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻžāĻšā§āĻ›āĻŋ āĻ¤āĻžāĻ‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ¯ā§‡ oldNode āĻ°ā§Ÿā§‡āĻ›ā§‡ āĻ¸ā§‡āĻŸāĻžāĻ° next āĻ•ā§‡ āĻ•āĻ°ā§‡ āĻĻāĻŋāĻŦā§‹ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ¨āĻ¤ā§āĻ¨ head āĻāĻŦāĻ‚ āĻāĻŸāĻžāĻ•ā§‡ āĻ¯āĻĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ head āĻ•āĻ°āĻŋ āĻ¤āĻžāĻšāĻ˛ā§‡ āĻāĻŸāĻžāĻ° āĻ¤ā§‹ āĻ…āĻŦāĻļā§āĻ¯āĻ‡ āĻāĻ•āĻŸāĻŋ prev node āĻ°ā§Ÿā§‡āĻ›ā§‡ āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ†āĻŽāĻ°āĻž āĻ¤ā§‹ āĻœāĻžāĻ¨āĻŋ āĻ¯ā§‡ head āĻāĻ° prev node null āĻĨāĻžāĻ•ā§‡ āĻāĻŦāĻ‚ tail āĻāĻ° next node null āĻĨāĻžāĻ•ā§‡ āĻ¤āĻžāĻšāĻ˛ā§‡ āĻ¤ā§‹ āĻāĻŦāĻžāĻ° āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻāĻ‡ node āĻāĻ° prev node null āĻ•āĻ°ā§‡ āĻĻāĻŋāĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤ āĻāĻŦāĻžāĻ° āĻ†āĻŽāĻžāĻĻā§‡āĻ° oldNode āĻ¯ā§‡āĻŸāĻž āĻ›āĻŋāĻ˛ā§‹ ( āĻŽāĻžāĻ¨ā§‡ āĻāĻ•āĻĻāĻŽ āĻļā§āĻ°ā§āĻ° āĻ¯ā§‡ head ) āĻ¤āĻžāĻ° āĻ¤ā§‹ āĻāĻ•āĻŸāĻŋ next node āĻ›āĻŋāĻ˛ā§‹ āĻ¯ā§‡āĻŸāĻžāĻ•ā§‡ āĻ†āĻŽāĻ°āĻž āĻāĻ–āĻ¨ āĻ¨āĻ¤ā§āĻ¨ head āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡āĻ›āĻŋ āĻ¤āĻžāĻ‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻāĻŦāĻžāĻ° āĻ“āĻ‡ oldNode āĻāĻ° next node null āĻ•āĻ°ā§‡ āĻĻāĻŋāĻ¤ā§‡ āĻšāĻŦā§‡ āĻ¤āĻžāĻšāĻ˛ā§‡āĻ‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻĄāĻŋāĻ˛āĻŋāĻŸ āĻ¸āĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻšā§Ÿā§‡ āĻ¯āĻžāĻŦā§‡āĨ¤ āĻāĻŦāĻ‚ āĻ¸āĻŦāĻžāĻ° āĻļā§‡āĻˇā§‡ āĻ¤ā§‹ length āĻ•āĻŽāĻŋā§Ÿā§‡ āĻĻāĻŋāĻ¤ā§‡ āĻšāĻŦā§‡ āĻ…āĻŦāĻļā§āĻ¯āĨ¤

āĻ“āĻ•ā§‡, āĻ¨āĻž āĻŦā§āĻā§‡ āĻĨāĻžāĻ•āĻ˛ā§‡ āĻ¨āĻŋāĻšā§‡ āĻ•ā§‹āĻĄ āĻĻā§‡āĻ“ā§ŸāĻž āĻšā§Ÿā§‡āĻ›ā§‡ āĻāĻŦāĻ‚ āĻ¸āĻžāĻĨā§‡ āĻ¤ā§‹ āĻ•āĻŽā§‡āĻ¨ā§āĻŸ āĻ†āĻ›ā§‡āĻ‡āĨ¤

// shift method implement
shift() {

    // āĻšā§‡āĻ• āĻ•āĻ°āĻž āĻšāĻšā§āĻ›ā§‡ āĻ¯ā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ˛āĻŋāĻ¸ā§āĻŸā§‡ āĻ•ā§‹āĻ¨ā§‹ node āĻ†āĻ›ā§‡ āĻ•āĻŋ āĻ¨āĻžāĨ¤
    if (!this.head) {
      return null;
    }

    // oldNode āĻ¨āĻžāĻŽā§‡ āĻāĻ•āĻŸāĻŋ variable āĻāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ†āĻŽāĻĻā§‡āĻ° āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ head āĻ•ā§‡ āĻ°āĻžāĻ–āĻž āĻšāĻšā§āĻ›ā§‡āĨ¤
    let oldHead = this.head;

    // āĻšā§‡āĻ• āĻ•āĻ°āĻž āĻšāĻšā§āĻ›ā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ˛āĻŋāĻ¸ā§āĻŸā§‡ āĻļā§āĻ§ā§ āĻāĻ•āĻŸāĻŋ node āĻĨāĻžāĻ•āĻ˛ā§‡ if āĻ•āĻžāĻœ āĻ•āĻ°āĻŦā§‡ āĻ¨āĻž āĻšāĻ˛ā§‡ else āĻ•āĻžāĻœ āĻ•āĻ°āĻŦā§‡āĨ¤
    if (this.head === 1) {
      // head āĻšā§Ÿā§‡ āĻ¯āĻžāĻŦā§‡ null
      this.head = null;

      // tail āĻšā§Ÿā§‡ āĻ¯āĻžāĻŦā§‡ null
      this.tail = null;
    } else {

      // āĻāĻ–āĻ¨ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ˛āĻŋāĻ¸ā§āĻŸā§‡āĻ° āĻ¨āĻ¤ā§āĻ¨ head āĻ¯āĻžāĻŦā§‡ āĻ†āĻ—ā§‡āĻ° head āĻāĻ° next āĻ āĻĨāĻžāĻ•āĻž node
      this.head = oldHead.next;

      // āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ˛āĻŋāĻ¸ā§āĻŸā§‡āĻ° āĻ†āĻ—ā§‡āĻ° head āĻāĻ° next node āĻšā§Ÿā§‡ āĻ¯āĻžāĻŦā§‡ null
      oldHead.next = null

      // āĻāĻ–āĻ¨ āĻ†āĻŽāĻ°āĻž āĻ¯ā§‡ āĻ¨āĻ¤ā§āĻ¨ head āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡āĻ›āĻŋ āĻ¤āĻžāĻ° prev node āĻšā§Ÿā§‡ āĻ¯āĻžāĻŦā§‡ null
      this.head.prev = null;
    }

    // āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ˛āĻŋāĻ¸ā§āĻŸā§‡āĻ° length āĻ•āĻŽā§‡ āĻ¯āĻžāĻŦā§‡āĨ¤
    this.length--;

  }

Time complexity - Singly Linked List VS Doubly Linked List

Singly Linked List

  • Push - O(1)
  • Pop - O(n)
  • Unshift - O(1)
  • Shift - O(1)
  • ShowAllNodeAsArray - O(n)

Doubly Linked List

  • Push - O(1)
  • Pop - O(1)
  • Unshift - O(1)
  • Shift - O(1)

About

Hello developers, Linked List is very big subject in our Data Structure part. And that's why I am created this new repository for explain clearly Linked List in details. I think it can be help you.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published