Skip to content

Latest commit

 

History

History
executable file
·
42 lines (41 loc) · 1.28 KB

Question2_6.md

File metadata and controls

executable file
·
42 lines (41 loc) · 1.28 KB

Question2_6

Solution

public class Question2_6 {
	public static OfferList<Integer>.ListNode<Integer> isBegining(OfferList<Integer>.ListNode<Integer> dummy){
		OfferList<Integer>.ListNode<Integer> slow = dummy.next.next;
		OfferList<Integer>.ListNode<Integer> fast = dummy.next.next;
		while(slow != fast){
			slow = slow.next;
			fast = fast.next.next;
		}
		if(fast == null)
			return null;
		OfferList<Integer>.ListNode<Integer> beginning = dummy.next;
		while(beginning != fast){
			beginning = beginning.next;
			fast = fast.next;
		}
		return beginning;
	}
	public static void main(String[] args) {
		OfferList<Integer>.ListNode<Integer> dummy = new OfferList<Integer>().new ListNode<Integer>(null); 
		OfferList<Integer>.ListNode<Integer> head = dummy;
		OfferList<Integer>.ListNode<Integer> begin = null;
		for(int i = 0; i < 20; i++){
			OfferList<Integer>.ListNode<Integer> temp = new OfferList<Integer>().new ListNode<Integer>(i);
			begin = temp;
			dummy.next = temp;
			dummy = dummy.next;
		}
		System.out.println(begin.value);
		for(int i = 20; i <40; i++){
			OfferList<Integer>.ListNode<Integer> temp = new OfferList<Integer>().new ListNode<Integer>(i);
			dummy.next = temp;
			dummy = dummy.next;
		}
		dummy.next = begin;
		System.out.println(isBegining(head).value);
	}
}