每日一刷61

92. Reverse Linked List II Reverse a linked list from position m to n. Do it in one-pass. Note: 1 ≤ m ≤ n ≤ length of list. Example: 1 2 Input: 1->2->3->4->5->NULL, m = 2, n = 4 Output: 1->4->3->2->5->NULL 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 class Solution { public ListNode reverseBetween(ListNode head,

每日一刷60

328. Odd Even Linked List Given a singly linked list, group all odd nodes together followed by the even nodes. Please note here we are talking about the node number and not the value in the nodes. You should try to do it in place. The program should run in O(1) space complexity and O(nodes) time complexity. Example 1: 1 2 Input: 1->2->3->4->5->NULL Output: 1->3->5->2->4->NULL Example 2: 1 2 Input:

每日一刷59

445. Add Two Numbers II You are given two non-empty linked lists representing two non-negative integers. The most significant digit comes first and each of their nodes contain a single digit. Add the two numbers and return it as a linked list. You may assume the two numbers do not contain any leading zero, except the number 0 itself. Follow up: What if you cannot modify the input lists? In

每日一刷58

2. Add Two Numbers You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a linked list. You may assume the two numbers do not contain any leading zero, except the number 0 itself. Example: 1 2 3 Input: (2 -> 4 -> 3) +

每日一刷57

142. Linked List Cycle II Given a linked list, return the node where the cycle begins. If there is no cycle, return null. Note: Do not modify the linked list. Follow up: Can you solve it without using extra space? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 public class Solution { public ListNode detectCycle(ListNode head) { ListNode fast

每日一刷56

141. Linked List Cycle Given a linked list, determine if it has a cycle in it. Follow up: Can you solve it without using extra space? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 public class Solution { public ListNode detectCycle(ListNode head) { ListNode fast = head, slow = head; while(fast!= null && fast.next!=null){ fast = fast.next.next; slow =

每日一刷55

234. Palindrome Linked List Given a singly linked list, determine if it is a palindrome. Example 1: 1 2 Input: 1->2 Output: false Example 2: 1 2 Input: 1->2->2->1 Output: true Follow up: Could you do it in O(n) time and O(1) space? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 public class Solution { public boolean isPalindrome(ListNode head)

每日一刷54

21. Merge Two Sorted Lists Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists. Example: 1 2 Input: 1->2->4, 1->3->4 Output: 1->1->2->3->4->4 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29

每日一刷53

206. Reverse Linked List Reverse a singly linked list. Example: 1 2 Input: 1->2->3->4->5->NULL Output: 5->4->3->2->1->NULL Follow up: A linked list can be reversed either iteratively or recursively. Could you implement both? 1 2 3 4 5 6 7 8 9 10 11 12 13 class Solution { public ListNode reverseList(ListNode head) { ListNode newhead = null; ListNode tempnode = null; while(head!= null){ tempnode = head; head = head.next; tempnode.next

每日一刷52

19. Remove Nth Node From End of List Given a linked list, remove the n-th node from the end of list and return its head. Example: Given linked list: 1->2->3->4->5, and n = 2. After removing the second node from the end, the linked list becomes 1->2->3->5. Note: Given n will always be valid. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16