从链表中删除项目的最后一次出现

使用指针,在整个列表中循环,并使用特殊指针跟踪包含最后一个出现键的节点之前的节点。在此之后,只需将下一个特殊指针存储到下一个特殊指针中,即可从链表中删除所需的节点。

null

C++

#include <iostream>
#include <bits/stdc++.h>
using namespace std;
// A linked list Node
struct Node
{
int data;
struct Node* next;
};
// Function to delete the last occurrence
void deleteLast( struct Node** head, int x)
{
struct Node** tmp1 = NULL;
while (*head)
{
if ((*head)->data == x)
{
tmp1 = head;
}
head = &(*head)->next;
}
if (tmp1)
{
struct Node* tmp = *tmp1;
*tmp1 = tmp->next;
free (tmp);
}
}
// Utility function to create a new node with
// given key
struct Node* newNode( int x)
{
Node* node = new Node ;
node->data = x;
node->next = NULL;
return node;
}
// This function prints contents of linked
// list starting from the given Node
void display( struct Node* head)
{
struct Node* temp = head;
if (head == NULL)
{
cout << "NULL" ;
return ;
}
while (temp != NULL)
{
cout << temp->data << " --> " ;
temp = temp->next;
}
cout << "NULL" ;
}
// Driver code
int main()
{
struct Node* head = newNode(1);
head->next = newNode(2);
head->next->next = newNode(3);
head->next->next->next = newNode(4);
head->next->next->next->next = newNode(5);
head->next->next->next->next->next = newNode(4);
head->next->next->next->next->next->next = newNode(4);
cout << "Created Linked list: " ;
display(head);
// Pass the address of the head pointer
deleteLast(&head, 4);
cout << "List after deletion of 4: " ;
display(head);
return 0;
}
// This code is contributed by khushboogoyal499


C

#include <stdio.h>
#include <stdlib.h>
// A linked list Node
struct Node {
int data;
struct Node* next;
};
// Function to delete the last occurrence
void deleteLast( struct Node** head, int x)
{
struct Node** tmp1 = NULL;
while (*head) {
if ((*head)->data == x) {
tmp1 = head;
}
head = &(*head)->next;
}
if (tmp1) {
struct Node* tmp = *tmp1;
*tmp1 = tmp->next;
free (tmp);
}
}
/* Utility function to create a new node with
given key */
struct Node* newNode( int x)
{
struct Node* node = malloc ( sizeof ( struct Node*));
node->data = x;
node->next = NULL;
return node;
}
// This function prints contents of linked list
// starting from the given Node
void display( struct Node* head)
{
struct Node* temp = head;
if (head == NULL) {
printf ( "NULL" );
return ;
}
while (temp != NULL) {
printf ( "%d --> " , temp->data);
temp = temp->next;
}
printf ( "NULL" );
}
/* Driver program to test above functions*/
int main()
{
struct Node* head = newNode(1);
head->next = newNode(2);
head->next->next = newNode(3);
head->next->next->next = newNode(4);
head->next->next->next->next = newNode(5);
head->next->next->next->next->next = newNode(4);
head->next->next->next->next->next->next = newNode(4);
printf ( "Created Linked list: " );
display(head);
deleteLast(&head, 4); // Pass the address of the head pointer
printf ( "List after deletion of 4: " );
display(head);
return 0;
}


JAVA

import java.io.*;
// A linked list Node
class Node
{
int data;
Node next;
Node( int data)
{
this .data = data;
this .next = null ;
}
}
class GFG{
// Function to delete the last occurrence
static Node deleteLast(Node head, int x)
{
Node temp = head;
Node ptr = null ;
while (temp != null )
{
// If found key, update
if (temp.data == x)
ptr = temp;
temp = temp.next;
}
// If the last occurrence is the last node
if (ptr != null && ptr.next == null )
{
temp = head;
while (temp.next != ptr)
{
temp = temp.next;
}
temp.next = null ;
}
// If it is not the last node
if (ptr != null && ptr.next != null )
{
ptr.data = ptr.next.data;
temp = ptr.next;
ptr.next = ptr.next.next;
}
return head;
}
// This function prints contents of linked list
// starting from the given Node
static void display(Node head)
{
Node temp = head;
if (head == null )
{
System.out.print( "NULL" );
return ;
}
while (temp != null )
{
System.out.print( temp.data+ " --> " );
temp = temp.next;
}
System.out.print( "NULL" );
}
// Driver code
public static void main(String[] args)
{
Node head = new Node( 1 );
head.next = new Node( 2 );
head.next.next = new Node( 3 );
head.next.next.next = new Node( 4 );
head.next.next.next.next = new Node( 5 );
head.next.next.next.next.next = new Node( 4 );
head.next.next.next.next.next.next = new Node( 4 );
System.out.print( "Created Linked list: " );
display(head);
// Pass the address of the head pointer
head = deleteLast(head, 4 );
System.out.print( "List after deletion of 4: " );
display(head);
}
}
// This code is contributed by patel2127


Python3

# A linked list Node
class Node:
def __init__( self , new_data):
self .data = new_data
self . next = None
# Function to delete the last occurrence
def deleteLast(head, x):
temp = head
ptr = None
while (temp ! = None ):
# If found key, update
if (temp.data = = x):
ptr = temp
temp = temp. next
# If the last occurrence is the last node
if (ptr ! = None and ptr. next = = None ):
temp = head
while (temp. next ! = ptr):
temp = temp. next
temp. next = None
# If it is not the last node
if (ptr ! = None and ptr. next ! = None ):
ptr.data = ptr. next .data
temp = ptr. next
ptr. next = ptr. next . next
return head
# Utility function to create a new node
# with given key
def newNode(x):
node = Node( 0 )
node.data = x
node. next = None
return node
# This function prints contents of linked
# list starting from the given Node
def display(head):
temp = head
if (head = = None ):
print ( "NULL" )
return
while (temp ! = None ):
print ( temp.data, " --> " , end = "")
temp = temp. next
print ( "NULL" )
# Driver code
head = newNode( 1 )
head. next = newNode( 2 )
head. next . next = newNode( 3 )
head. next . next . next = newNode( 4 )
head. next . next . next . next = newNode( 5 )
head. next . next . next . next . next = newNode( 4 )
head. next . next . next . next . next . next = newNode( 4 )
print ( "Created Linked list: " , end = '')
display(head)
# Pass the address of the head pointer
head = deleteLast(head, 4 )
print ( "List after deletion of 4: " , end = '')
display(head)
# This code is contributed by rutvik_56


Javascript

<script>
// A linked list Node
class Node
{
// Utility function to create a new node
// with given key
constructor(data)
{
this .data = data;
this .next = null ;
}
}
// Function to delete the last occurrence
function deleteLast(head, x)
{
let temp = head;
let prt = null ;
while (temp != null )
{
//If found key, update
if (temp.data == x)
ptr = temp;
temp = temp.next;
}
// If the last occurrence is the last node
if (ptr != null && ptr.next == null )
{
temp = head;
while (temp.next != ptr)
{
temp = temp.next;
}
temp.next = null ;
}
// If it is not the last node
if (ptr != null && ptr.next != null )
{
ptr.data = ptr.next.data;
temp = ptr.next;
ptr.next = ptr.next.next;
}
return head;
}
// This function prints contents of linked
// list starting from the given Node
function display(head)
{
let temp = head
if (head == null )
{
document.write( "NULL<br>" );
return ;
}
while (temp != null )
{
document.write( temp.data, " --> " , end = "" );
temp = temp.next;
}
document.write( "NULL<br>" )
}
// Driver code
let head = new Node(1)
head.next = new Node(2)
head.next.next = new Node(3)
head.next.next.next = new Node(4)
head.next.next.next.next = new Node(5)
head.next.next.next.next.next = new Node(4)
head.next.next.next.next.next.next = new Node(4);
document.write( "Created Linked list: " );
display(head)
// Pass the address of the head pointer
head = deleteLast(head, 4)
document.write( "List after deletion of 4: " )
display(head)
// This code is contributed by avanitrachhadiya2155
</script>


输出

Created Linked list: 1 --> 2 --> 3 --> 4 --> 5 --> 4 --> 4 --> NULLList after deletion of 4: 1 --> 2 --> 3 --> 4 --> 5 --> 4 --> NULL

给出一个喜欢的列表和一个要删除的密钥。从链接中删除上次出现的关键点。该列表可能有重复项。

例子 :

Input:   1->2->3->5->2->10, key = 2Output:  1->2->3->5->10

这个想法是从头到尾遍历链表。在遍历时,跟踪最后一次出现的关键点。遍历完整列表后,通过复制下一个节点的数据并删除下一个节点来删除最后一个引用。

C++

// A C++ program to demonstrate deletion of last
// Node in singly linked list
#include <bits/stdc++.h>
// A linked list Node
struct Node {
int key;
struct Node* next;
};
void deleteLast(Node* head, int key)
{
// Initialize previous of Node to be deleted
Node* x = NULL;
// Start from head and find the Node to be
// deleted
Node* temp = head;
while (temp) {
// If we found the key, update xv
if (temp->key == key)
x = temp;
temp = temp->next;
}
// key occurs at-least once
if (x != NULL) {
// Copy key of next Node to x
x->key = x->next->key;
// Store and unlink next
temp = x->next;
x->next = x->next->next;
// Free memory for next
delete temp;
}
}
/* Utility function to create a new node with
given key */
Node* newNode( int key)
{
Node* temp = new Node;
temp->key = key;
temp->next = NULL;
return temp;
}
// This function prints contents of linked list
// starting from the given Node
void printList( struct Node* node)
{
while (node != NULL) {
printf ( " %d " , node->key);
node = node->next;
}
}
/* Driver program to test above functions*/
int main()
{
/* Start with the empty list */
struct Node* head = newNode(1);
head->next = newNode(2);
head->next->next = newNode(3);
head->next->next->next = newNode(5);
head->next->next->next->next = newNode(2);
head->next->next->next->next->next = newNode(10);
puts ( "Created Linked List: " );
printList(head);
deleteLast(head, 2);
puts ( "Linked List after Deletion of 1: " );
printList(head);
return 0;
}


JAVA

// A Java program to demonstrate deletion of last
// Node in singly linked list
class GFG
{
// A linked list Node
static class Node
{
int key;
Node next;
};
static Node deleteLast(Node head, int key)
{
// Initialize previous of Node to be deleted
Node x = null ;
// Start from head and find the Node to be
// deleted
Node temp = head;
while (temp != null )
{
// If we found the key, update xv
if (temp.key == key)
x = temp;
temp = temp.next;
}
// key occurs at-least once
if (x != null )
{
// Copy key of next Node to x
x.key = x.next.key;
// Store and unlink next
temp = x.next;
x.next = x.next.next;
// Free memory for next
}
return head;
}
/// Utility function to create a new node with
//given key /
static Node newNode( int key)
{
Node temp = new Node();
temp.key = key;
temp.next = null ;
return temp;
}
// This function prints contents of linked list
// starting from the given Node
static void printList( Node node)
{
while (node != null )
{
System.out.printf( " %d " , node.key);
node = node.next;
}
}
// Driver code/
public static void main(String args[])
{
// /Start with the empty list /
Node head = newNode( 1 );
head.next = newNode( 2 );
head.next.next = newNode( 3 );
head.next.next.next = newNode( 5 );
head.next.next.next.next = newNode( 2 );
head.next.next.next.next.next = newNode( 10 );
System.out.printf( "Created Linked List: " );
printList(head);
deleteLast(head, 2 );
System.out.printf( "Linked List after Deletion of 1: " );
printList(head);
}
}
// This code is contributed by Arnab Kundu


Python3

# Python3 program to demonstrate deletion of
# last Node in singly linked list
# A linked list Node
class Node:
# Constructor to initialize the node object
def __init__( self , data):
self .data = data
self . next = None
def deleteLast(head, key) :
# Initialize previous of Node to be deleted
x = None
# Start from head and find the Node to be
# deleted
temp = head
while (temp ! = None ) :
# If we found the key, update xv
if (temp.key = = key) :
x = temp
temp = temp. next
# key occurs at-least once
if (x ! = None ) :
# Copy key of next Node to x
x.key = x. next .key
# Store and unlink next
temp = x. next
x. next = x. next . next
# Free memory for next
return head
# Utility function to create
# a new node with given key
def newNode(key) :
temp = Node( 0 )
temp.key = key
temp. next = None
return temp
# This function prints contents of linked list
# starting from the given Node
def printList( node) :
while (node ! = None ) :
print ( node.key, end = " " )
node = node. next
# Driver Code
if __name__ = = '__main__' :
# Start with the empty list
head = newNode( 1 )
head. next = newNode( 2 )
head. next . next = newNode( 3 )
head. next . next . next = newNode( 5 )
head. next . next . next . next = newNode( 2 )
head. next . next . next . next . next = newNode( 10 )
print ( "Created Linked List: " )
printList(head)
deleteLast(head, 2 )
print ( "Linked List after Deletion of 1: " )
printList(head)
# This code is contributed by Arnab Kundu


C#

// C# program to demonstrate deletion of last
// Node in singly linked list
using System;
class GFG
{
// A linked list Node
public class Node
{
public int key;
public Node next;
};
static Node deleteLast(Node head, int key)
{
// Initialize previous of Node to be deleted
Node x = null ;
// Start from head and find the Node to be
// deleted
Node temp = head;
while (temp != null )
{
// If we found the key, update xv
if (temp.key == key)
x = temp;
temp = temp.next;
}
// key occurs at-least once
if (x != null )
{
// Copy key of next Node to x
x.key = x.next.key;
// Store and unlink next
temp = x.next;
x.next = x.next.next;
// Free memory for next
}
return head;
}
/// Utility function to create a new node with
//given key /
static Node newNode( int key)
{
Node temp = new Node();
temp.key = key;
temp.next = null ;
return temp;
}
// This function prints contents of linked list
// starting from the given Node
static void printList( Node node)
{
while (node != null )
{
Console.Write( " {0} " , node.key);
node = node.next;
}
}
// Driver code
public static void Main(String []args)
{
// Start with the empty list
Node head = newNode(1);
head.next = newNode(2);
head.next.next = newNode(3);
head.next.next.next = newNode(5);
head.next.next.next.next = newNode(2);
head.next.next.next.next.next = newNode(10);
Console.Write( "Created Linked List: " );
printList(head);
deleteLast(head, 2);
Console.Write( "Linked List after Deletion of 1: " );
printList(head);
}
}
// This code has been contributed by 29AjayKumar


Javascript

<script>
// A Javascript program to demonstrate
// deletion of last Node in singly
// linked list
class Node
{
constructor(key)
{
this .key = key;
this .next = null ;
}
}
function deleteLast(head, key)
{
// Initialize previous of Node to be deleted
let x = null ;
// Start from head and find the Node to be
// deleted
let temp = head;
while (temp != null )
{
// If we found the key, update xv
if (temp.key == key)
x = temp;
temp = temp.next;
}
// key occurs at-least once
if (x != null )
{
// Copy key of next Node to x
x.key = x.next.key;
// Store and unlink next
temp = x.next;
x.next = x.next.next;
// Free memory for next
}
return head;
}
// This function prints contents of linked
// list starting from the given Node
function printList(node)
{
while (node != null )
{
document.write(node.key + " " );
node = node.next;
}
}
// Driver code
let head = new Node(1);
head.next = new Node(2);
head.next.next = new Node(3);
head.next.next.next = new Node(5);
head.next.next.next.next = new Node(2);
head.next.next.next.next.next = new Node(10);
document.write( "Created Linked List: <br>" );
printList(head);
deleteLast(head, 2);
document.write( "<br>Linked List after " +
"Deletion of 1: <br>" );
printList(head);
// This code is contributed by rag2127
</script>


输出:

Created Linked List:  1  2  3  5  2  10 Linked List after Deletion of 1:  1  2  3  5  10

当要删除的节点是最后一个节点时,上述解决方案不起作用。 以下解决方案处理所有情况。

C++

// A C++ program to demonstrate deletion of last
// Node in singly linked list
#include <bits/stdc++.h>
using namespace std;
// A linked list Node
struct Node {
int data;
struct Node* next;
};
// Function to delete the last occurrence
void deleteLast( struct Node* head, int x)
{
struct Node *temp = head, *ptr = NULL;
while (temp) {
// If found key, update
if (temp->data == x)
ptr = temp;
temp = temp->next;
}
// If the last occurrence is the last node
if (ptr != NULL && ptr->next == NULL) {
temp = head;
while (temp->next != ptr)
temp = temp->next;
temp->next = NULL;
}
// If it is not the last node
if (ptr != NULL && ptr->next != NULL) {
ptr->data = ptr->next->data;
temp = ptr->next;
ptr->next = ptr->next->next;
free (temp);
}
}
/* Utility function to create a new node with
given key */
struct Node* newNode( int x)
{
Node* node = new Node ;
node->data = x;
node->next = NULL;
return node;
}
// This function prints contents of linked list
// starting from the given Node
void display( struct Node* head)
{
struct Node* temp = head;
if (head == NULL) {
cout << "NULL" ;
return ;
}
while (temp != NULL) {
cout << " --> " << temp->data;
temp = temp->next;
}
cout << "NULL" ;
}
/* Driver program to test above functions*/
int main()
{
struct Node* head = newNode(1);
head->next = newNode(2);
head->next->next = newNode(3);
head->next->next->next = newNode(4);
head->next->next->next->next = newNode(5);
head->next->next->next->next->next = newNode(4);
head->next->next->next->next->next->next = newNode(4);
cout << "Created Linked list: " ;
display(head);
deleteLast(head, 4);
cout << "List after deletion of 4: " ;
display(head);
return 0;
}
// This code is contributed by shivanisinghss2110


C

// A C program to demonstrate deletion of last
// Node in singly linked list
#include <stdio.h>
#include <stdlib.h>
// A linked list Node
struct Node {
int data;
struct Node* next;
};
// Function to delete the last occurrence
void deleteLast( struct Node* head, int x)
{
struct Node *temp = head, *ptr = NULL;
while (temp) {
// If found key, update
if (temp->data == x)
ptr = temp;
temp = temp->next;
}
// If the last occurrence is the last node
if (ptr != NULL && ptr->next == NULL) {
temp = head;
while (temp->next != ptr)
temp = temp->next;
temp->next = NULL;
}
// If it is not the last node
if (ptr != NULL && ptr->next != NULL) {
ptr->data = ptr->next->data;
temp = ptr->next;
ptr->next = ptr->next->next;
free (temp);
}
}
/* Utility function to create a new node with
given key */
struct Node* newNode( int x)
{
struct Node* node = malloc ( sizeof ( struct Node*));
node->data = x;
node->next = NULL;
return node;
}
// This function prints contents of linked list
// starting from the given Node
void display( struct Node* head)
{
struct Node* temp = head;
if (head == NULL) {
printf ( "NULL" );
return ;
}
while (temp != NULL) {
printf ( "%d --> " , temp->data);
temp = temp->next;
}
printf ( "NULL" );
}
/* Driver program to test above functions*/
int main()
{
struct Node* head = newNode(1);
head->next = newNode(2);
head->next->next = newNode(3);
head->next->next->next = newNode(4);
head->next->next->next->next = newNode(5);
head->next->next->next->next->next = newNode(4);
head->next->next->next->next->next->next = newNode(4);
printf ( "Created Linked list: " );
display(head);
deleteLast(head, 4);
printf ( "List after deletion of 4: " );
display(head);
return 0;
}


JAVA

// Java program to demonstrate deletion of last
// Node in singly linked list
class GFG
{
// A linked list Node
static class Node
{
int data;
Node next;
};
// Function to delete the last occurrence
static void deleteLast(Node head, int x)
{
Node temp = head, ptr = null ;
while (temp!= null )
{
// If found key, update
if (temp.data == x)
ptr = temp;
temp = temp.next;
}
// If the last occurrence is the last node
if (ptr != null && ptr.next == null )
{
temp = head;
while (temp.next != ptr)
temp = temp.next;
temp.next = null ;
}
// If it is not the last node
if (ptr != null && ptr.next != null )
{
ptr.data = ptr.next.data;
temp = ptr.next;
ptr.next = ptr.next.next;
System.gc();
}
}
/* Utility function to create a new node with
given key */
static Node newNode( int x)
{
Node node = new Node();
node.data = x;
node.next = null ;
return node;
}
// This function prints contents of linked list
// starting from the given Node
static void display(Node head)
{
Node temp = head;
if (head == null )
{
System.out.print( "null" );
return ;
}
while (temp != null )
{
System.out.printf( "%d --> " , temp.data);
temp = temp.next;
}
System.out.print( "null" );
}
/* Driver code*/
public static void main(String[] args)
{
Node head = newNode( 1 );
head.next = newNode( 2 );
head.next.next = newNode( 3 );
head.next.next.next = newNode( 4 );
head.next.next.next.next = newNode( 5 );
head.next.next.next.next.next = newNode( 4 );
head.next.next.next.next.next.next = newNode( 4 );
System.out.print( "Created Linked list: " );
display(head);
deleteLast(head, 4 );
System.out.print( "List after deletion of 4: " );
display(head);
}
}
/* This code is contributed by PrinciRaj1992 */


Python3

# A Python3 program to demonstrate deletion of last
# Node in singly linked list
# A linked list Node
class Node:
def __init__( self , new_data):
self .data = new_data
self . next = None
# Function to delete the last occurrence
def deleteLast(head, x):
temp = head
ptr = None
while (temp! = None ):
# If found key, update
if (temp.data = = x) :
ptr = temp
temp = temp. next
# If the last occurrence is the last node
if (ptr ! = None and ptr. next = = None ):
temp = head
while (temp. next ! = ptr) :
temp = temp. next
temp. next = None
# If it is not the last node
if (ptr ! = None and ptr. next ! = None ):
ptr.data = ptr. next .data
temp = ptr. next
ptr. next = ptr. next . next
return head
# Utility function to create a new node with
# given key
def newNode(x):
node = Node( 0 )
node.data = x
node. next = None
return node
# This function prints contents of linked list
# starting from the given Node
def display( head):
temp = head
if (head = = None ):
print ( "None" )
return
while (temp ! = None ):
print ( temp.data, " -> " ,end = "")
temp = temp. next
print ( "None" )
# Driver code
head = newNode( 1 )
head. next = newNode( 2 )
head. next . next = newNode( 3 )
head. next . next . next = newNode( 4 )
head. next . next . next . next = newNode( 5 )
head. next . next . next . next . next = newNode( 4 )
head. next . next . next . next . next . next = newNode( 4 )
print ( "Created Linked list: " )
display(head)
head = deleteLast(head, 4 )
print ( "List after deletion of 4: " )
display(head)
# This code is contributed by Arnab Kundu


C#

// C# program to demonstrate deletion of last
// Node in singly linked list
using System;
class GFG
{
// A linked list Node
public class Node
{
public int data;
public Node next;
};
// Function to delete the last occurrence
static void deleteLast(Node head, int x)
{
Node temp = head, ptr = null ;
while (temp != null )
{
// If found key, update
if (temp.data == x)
ptr = temp;
temp = temp.next;
}
// If the last occurrence is the last node
if (ptr != null && ptr.next == null )
{
temp = head;
while (temp.next != ptr)
temp = temp.next;
temp.next = null ;
}
// If it is not the last node
if (ptr != null && ptr.next != null )
{
ptr.data = ptr.next.data;
temp = ptr.next;
ptr.next = ptr.next.next;
}
}
/* Utility function to create a new node with
given key */
static Node newNode( int x)
{
Node node = new Node();
node.data = x;
node.next = null ;
return node;
}
// This function prints contents of linked list
// starting from the given Node
static void display(Node head)
{
Node temp = head;
if (head == null )
{
Console.Write( "null" );
return ;
}
while (temp != null )
{
Console.Write( "{0} --> " , temp.data);
temp = temp.next;
}
Console.Write( "null" );
}
/* Driver code*/
public static void Main(String[] args)
{
Node head = newNode(1);
head.next = newNode(2);
head.next.next = newNode(3);
head.next.next.next = newNode(4);
head.next.next.next.next = newNode(5);
head.next.next.next.next.next = newNode(4);
head.next.next.next.next.next.next = newNode(4);
Console.Write( "Created Linked list: " );
display(head);
deleteLast(head, 4);
Console.Write( "List after deletion of 4: " );
display(head);
}
}
// This code contributed by Rajput-Ji


Javascript

<script>
// JavaScript program to demonstrate
// deletion of last
// Node in singly linked list
// A linked list Node
class Node {
constructor() {
this .data = 0;
this .next = null ;
}
}
// Function to delete the last occurrence
function deleteLast(head , x) {
var temp = head, ptr = null ;
while (temp != null ) {
// If found key, update
if (temp.data == x)
ptr = temp;
temp = temp.next;
}
// If the last occurrence is the last node
if (ptr != null && ptr.next == null ) {
temp = head;
while (temp.next != ptr)
temp = temp.next;
temp.next = null ;
}
// If it is not the last node
if (ptr != null && ptr.next != null ) {
ptr.data = ptr.next.data;
temp = ptr.next;
ptr.next = ptr.next.next;
}
}
/*
Utility function to create a new
node with given key
*/
function newNode(x) {
var node = new Node();
node.data = x;
node.next = null ;
return node;
}
// This function prints contents of linked list
// starting from the given Node
function display(head) {
var temp = head;
if (head == null ) {
document.write( "null<br/>" );
return ;
}
while (temp != null ) {
document.write( temp.data + " --> " );
temp = temp.next;
}
document.write( "null<br/>" );
}
/* Driver code */
var head = newNode(1);
head.next = newNode(2);
head.next.next = newNode(3);
head.next.next.next = newNode(4);
head.next.next.next.next = newNode(5);
head.next.next.next.next.next = newNode(4);
head.next.next.next.next.next.next = newNode(4);
document.write( "Created Linked list: " );
display(head);
deleteLast(head, 4);
document.write( "List after deletion of 4: " );
display(head);
// This code contributed by gauravrajput1
</script>


输出:

Created Linked List:  1  2  3  4  5  4  4 Linked List after Deletion of 1:  1  2  3  4  5  4

如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写评论

© 版权声明
THE END
喜欢就支持一下吧
点赞12 分享