Linked List - leetcode

时间:2023-03-09 18:33:56
Linked List - leetcode

138. Copy List with Random Pointer

//不从head走 前面加一个dummy node 从dummy走先连head 只需记录当前节点
//这样就不需要考虑是先new node还是先找联系
//扫两遍 先建立节点和next 利用map<node*, node*>old2new 来找random

linked list 一般用while循环来建立loop

147. Insertion Sort List

//这里dummy是新插入的sorted list的头,所有节点要往其后插
//curr是插入位置的前一个节点

//从头往后扫 要记住next 以便作为下次比较的head

148. Sort List

要求O(nlogn) 用merge排序 因为quicksort不好access list的data

160. Intersection of Two Linked Lists

先判断没有交叉的情况
判断有交叉 用length差从头结点往后数 确保两条list当前node与首交node距离相等
通用判断while(headA != headB)往后走