You are given a list, L, and another list, P, containing integers sorted in ascending order. The operation printLots(L,P) will print the elements in L that are in positions specified by P. For instance, if P = 1, 3, 4, 6, the elements in positions 1, 3, 4, and 6 in L are printed. Write the procedure printLots(L,P). You may use only the public Collections API container operations. What is the running time of your procedure?
Read moreTextbook Solutions for Data Structures and Algorithm Analysis in Java
Question
A linked list contains a cycle if, starting from some node p, following a sufficientnumber of next links brings us back to node p. p does not have to be the first nodein the list. Assume that you are given a linked list that contains N nodes. However,the value of N is unknown.a. Design an O(N) algorithm to determine if the list contains a cycle. You may useO(N) extra space. b. Repeat part (a), but use only O(1) extra space. (Hint: Use two iterators that areinitially at the start of the list, but advance at different speeds.)
Solution
The first step in solving 3 problem number 34 trying to solve the problem we have to refer to the textbook question: A linked list contains a cycle if, starting from some node p, following a sufficientnumber of next links brings us back to node p. p does not have to be the first nodein the list. Assume that you are given a linked list that contains N nodes. However,the value of N is unknown.a. Design an O(N) algorithm to determine if the list contains a cycle. You may useO(N) extra space. b. Repeat part (a), but use only O(1) extra space. (Hint: Use two iterators that areinitially at the start of the list, but advance at different speeds.)
From the textbook chapter Lists, Stacks, and Queues you will find a few key concepts needed to solve this.
Visible to paid subscribers only
Step 3 of 7)Visible to paid subscribers only
full solution