public static int CheckBySplit(ListNode A) { int length = ListNodeUtil.GetLength(A); ListNode temp = A; ListNode midNode = null; int mid = length / 2; int count = 0; while (count < mid) { midNode = temp; temp = temp.next; count++; } ListNode revHead = ReverseList.Reverse(temp); //ListNodeUtil.Print(revHead); temp = A; ListNode revHeadTemp = revHead; count = 0; int res = 1; while (count < mid) { if (revHeadTemp.val != temp.val) { res = 0; break; } revHeadTemp = revHeadTemp.next; temp = temp.next; count++; } ListNode revRevHead = ReverseList.Reverse(revHead); //ListNodeUtil.Print(revRevHead); midNode.next = revRevHead; ListNodeUtil.Print(A); return(res); }
public static void Invoke() { ListNode A = new ListNode(); A.val = 1; A.next = new ListNode() { val = 3, next = new ListNode() { val = 3, // next = null next = new ListNode() { val = 4, //next = null next = new ListNode() { val = 5, next = new ListNode() { val = 6, next = null } } } } }; //ListNode a = RemoveNthNodeFromListEnd.Remove(A, 2); //ListNode a = RotateList.Rotate(A, 0); //ListNode B = new ListNode() { val = 1 }; //ListNode a = AddTwoNumbersAsLists.Add(A, B); // int a = PalindromeList.CheckBySplit(A); // ListNode a = PartitionList.Partition(A, 2); //ListNode a = ReverseLinkListII.ReverseRange(A, 6, 4); ListNode a = SUBTRACT.Cal(A); ListNodeUtil.Print(a); }