力扣160题 相交链表
var getIntersectionNode = function(headA, headB) {
if (headA === null || headB === null) { // 任一链表为空即不可相交
return null;
}
let pA = headA, pB = headB;
while (pA !== pB) { // 依次访问两个链表,当任一链表为空时将
pA = pA === null ? headB : pA.next;
pB = pB === null ? headA : pB.next;
}
return pA;
};
反转链表
// 反转链表
function reverse(head) {
if (head.next === null || head === null) {
return; //没节点或者单节点不用反转
}
let currNode = head;
let pre = null; // 储存首节点
while (currNode !== null) {
const temp = currNode.next; //将currNode的下个节点保存
currNode.next = pre; //将currNode的下个节点指向新链表的首节点,此时currNode就是链表的首节点
pre = currNode; //将首节点记录下来
currNode = temp; //将currNode后移
}
return pre
}