- 博客(4)
- 收藏
- 关注
原创 算法通关村第二关一链表反转
如下图所示,将链表{1->2->3->4->5}进行反转,首先建立虚拟结点ans,并令ans.neXt=node(1),接下来每次从I旧的链表拆下来一个结点接到ans后面,然后将其他线调整好就可以了。执行期间的过程示意图,在图中,cur本来指向旧链表的首结点,pr表示已经调整好的新链表的表头,next是下一个要调整的。注意图中箭头方向,cur和pre是两个表的表头,移动过程中cur经过一次中间状态之后,又重新变成了两个链表的表头。一、建立虚拟点结点辅助反转。二、直接操作链表反转。
2023-07-26 23:42:13 37 1
原创 算法通关村第一关—链表经典问题之两个链表的第一个公共子节点问题笔记
③使用栈,现将两个链表分别压到两个栈里,之后一边同时出栈,一边比较出栈元素是否一致,如果一致则说明存在相交,然后继续找,直到找到最晚出栈的那一组。这种方式需要两个O(n)的空间,所以并不算很好的方法。④类似于冒泡排序的方式,将第一个链表中的每一个结点依次与第二个链表的进行比较,当出现相等的结点指针时,即为相交结点。时间复杂度高,不建议使用!①使用hash,先将第一个链表元素全部存到map里,然后在遍历第二个链表的同时检测当前元素是否在hash中。第二轮遍历,长的先走L2-L1,然后两个链表同时向前。
2023-07-22 15:50:42 41
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人