题目:24. 两两交换链表中的节点 https://leetcode.cn/problems/swap-nodes-in-pairs/
19.删除链表的倒数第N个节点https://leetcode.cn/problems/remove-nth-node-from-end-of-list/
面试题 02.07. 链表相交 https://leetcode.cn/problems/intersection-of-two-linked-lists-lcci/
142.环形链表IIhttps://leetcode.cn/problems/swap-nodes-in-pairs/
看到题目的第一想法:24题,将节点压入栈中,在从栈里面获取;链表遍历,利用pre_node、cur_node、next_node,pre_node->next=cur_node->next; cur_node->next=pre_node;
19题 跟24题相同思路相同,遍历链表,利用pre_node、cur_node、next_node,只是cur_node一次跳跃两个节点,且当cur_node尾节点或者倒数第二节点时,pre_node->next赋值不同
面试题02.07 链表相交,第一想法是链表A、链表B分别压缩栈1、栈2,根据栈顶节点是否相同判断是否有相交,有相交,同时从栈顶获取节点
看到题解后思路,两个链表如果节点有相交,甲走listA+listB == 乙走listB + listA,listA + listB相交部分 == listB + listA相交部分
面试题142 看到题目的第一想法是快慢指针,A一次走一步、B一次走两步,假如B遍历完则没有相交节点,假如A和B相碰,则有相交节点;假如不为环部门长度为m,环长度为n,在环k部门节点相碰,则 2(m + k) = m + n + k,则m = n - k,也就是A从head开始走,B从k开始走,会在环起点部分相撞;
遇到的苦难:部门情况未考虑到,需要根据测试用例反复调试;