Skip to main content

Deleting a Node by passing data in LInkedList

Deleting a Node by passing data in LInkedList:-

The node can be deleted by passing the data value in a function.Here we have three pointers one to traverse the list other to point current node and third one to point previous of current node.



//deleting a given key
 public Node deleteKeyNode(Node head,int key)
 {
  //traverse pointer
  Node temp=head;
  //previous pointer
  Node prevtemp=temp;
  
  while(temp!=null)
  {
   //when key is at head position
   if(key==head.data)
   {
    head=head.next;
    System.out.println("head is deleted");
    return head;
   }
   
   //when key is at any position other than head
   if(temp.data==key)
   {
    prevtemp.next=temp.next;
    temp.next=null;
    temp=prevtemp; 
   }
   prevtemp=temp;
   temp=temp.next;
  }
  return head;
 }

Comments

.

Popular posts from this blog

Best LeetCode Lists for Interviews

Here is a list of some of the best questions asked in interviews:-  Must do 75 https://leetcode.com/list/5hkn6wze/ Must do 60  https://leetcode.com/list/5eie1aqd/ Must do medium:-  https://leetcode.com/list/5xaelz7g/ Must do Easy:-   https://leetcode.com/list/5r7rxpr1/ Graph:-  https://leetcode.com/list/x18ervrd/  Dynamic Programming:-    https://leetcode.com/list/x14z0dxr/  FaceBook interviews:- https://leetcode.com/list/xyu98pv6/  Amazon Interviews:-  https://leetcode.com/list/5hkniyf7/  Google Interviews:- https://leetcode.com/list/xyu9xfo1/ https://github.com/nazarmubeen/TopProblems/blob/master/README.md

EDIT DISTANCE PROBLEM - LEETCODE 72

  Given two words  word1  and  word2 , find the minimum number of operations required to convert  word1  to  word2 . You have the following 3 operations permitted on a word: Insert a character Delete a character Replace a character Example 1: Input: word1 = "horse", word2 = "ros" Output: 3 Explanation: horse -> rorse (replace 'h' with 'r') rorse -> rose (remove 'r') rose -> ros (remove 'e') Solution:- class Solution { public int minDistance(String word1, String word2) { if(word1.length()==0){ return word2.length(); } if(word2.length()==0){ return word1.length(); } if(word1.length()==0 && word2.length()==0){ return 0; } int[][] result=new int[word1.length()+1][word2.length()+1]; for(int i=0;i<=word1.length();i++){ result[i][0]=i; } ...