- 1.实现单链表、循环链表、双向链表,支持增删操作
- 2.实现单链表反转
public class reverseList{
public class ListNode {
int val;
ListNode next;
ListNode(int x) { val = x; }
}
public ListNode reverse(ListNode node) {
ListNode pre = null;
ListNode cur = node;
while (cur != null) {
ListNode next = now.next;
cur.next = prev;
pre = now;
cur = next;
}
return pre;
}
}
- 3.实现两个有序的链表合并为一个有序链表
public class ListNode {
int val;
ListNode next;
ListNode(int x) { val = x; }
}
public ListNode mergeTwoLists(ListNode l1, ListNodel2) {
if (l1 == null l)
return l2;
if (l2 == null)
return l1;
ListNode head = null;
if (l1.val > l2.val) {
head = l2;
head.next = mergeTwoLists(l1, l2.next);
} else {
head = l1;
head.next = mergeTwoLists(l1.next, l2) ;
}
- 4.实现求链表的中间结点
LeetCode 141. Linked List Cycle
LeetCode 23. Merge k Sorted Lists