Describe a method for finding the middle node of a do

Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
icon
Related questions
Question

Java Programming language

Please help me with this. Thanks in advance. 

Describe a method for finding the middle node of a doubly linked list with header
and trailer sentinels by "link hopping," and without relying on explicit knowledge
of the size of the list. In the case of an even number of nodes, report the node
slightly left of center as the "middle." What is the running time of this method?
Transcribed Image Text:Describe a method for finding the middle node of a doubly linked list with header and trailer sentinels by "link hopping," and without relying on explicit knowledge of the size of the list. In the case of an even number of nodes, report the node slightly left of center as the "middle." What is the running time of this method?
Expert Solution
Step 1

//Java Program to finding the middle element in doubly linked list

class Node  
{  
int num;  
Node next;  
// constructor of the class Node  
Node(int n)  
{  
this.num = n;  
this.next = null;  
}  
}

 class T
{  
public void findNode(Node n)  
{  
if(n == null)   
{  
return;  
}  
Node slow = n;  
Node fast = n;  
while(fast != null && fast.next != null)  
{  
// fast pointer is taking two steps at a time  
fast = fast.next.next;  
// slow pointer is taking one step at a time  
slow = slow.next;  
}  
System.out.println("The middle node of the linked list is: " + slow.num);  
}  
}
public class n 
{
// main method  
public static void main(String args[])  
{  
// head node of the linked list  
Node h = new Node(13);  
// remaining node of the linked list  
h.next = new Node(17);  
h.next.next = new Node(90);  
h.next.next.next = new Node(76);  
h.next.next.next.next = new Node(45);  
h.next.next.next.next.next = new Node(32);  
h.next.next.next.next.next.next = new Node(10);  
// creating an object of the class TwoPointerExample1  
TwoPointerExample1 obj = new TwoPointerExample1();  
// invoking the method findNode()  
obj.findNode(h);  
}  
}  

 

trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 2 steps with 1 images

Blurred answer
Knowledge Booster
Linear Programming Concepts
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Recommended textbooks for you
Database System Concepts
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education