链表
合并两个有序链表
输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。
示例1:
输入:1->2->4, 1->3->4输出:1->1->2->3->4->限制:0 <= 链表长度 <= 1000
/*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode(int x) { val = x; }* }*/class Solution {public ListNode mergeTwoLists(ListNode l1, ListNode l2) {ListNode res = new ListNode(0); // 最终结果链表ListNode cur = res; // 用于链表合并while (l1 != null && l2 != null) { // 这里循环最终会剩一个结果,l1或者l2if (l1.val <= l2.val) {cur.next = l1;l1 = l1.next;}else {cur.next = l2;l2 = l2.next;}cur = cur.next;}cur.next = l1 != null ? l1 : l2; // 如果剩下是l1,则返回l1,如果l1为空,则剩下的是l2,返回l2return res.next; // 为什么不是res呢?因为实例化的时候定义了一个初始值为0}}
判断链表中是否有环
- 哈希法:HashSet
- 快慢双指针

