代码随想录算法训练营第四天|24. 两两交换链表中的节点、19.删除链表的倒数第N个节点、面试题 02.07. 链表相交、142.环形链表II

题目: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开始走,会在环起点部分相撞;

遇到的苦难:部门情况未考虑到,需要根据测试用例反复调试;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值