判断两个链表是否相交
给定两个链表h1、h2,判断h1、h2是否相交。
在链表节点内或节点外增加一个访问标志,访问节点后,将访问标志置1,但访问前标志位已经置为1,说明之前已经访问过此节点。
- 首先遍历链表h1中的节点,将访问节点后的标志位置为1。
- 遍历链表h2中的节点,若访问节点时,标志位已经为1,则说明两个链表相交。若不存在访问过的节点,则说明两个链表不相交。
这个问题有另外一个方法。 - 遍历访问链表h1,访问节点时将next指针指向前一个节点。
- 遍历链表h2,遍历完成后,判断最后访问的节点是否是h1指向的节点,如果是则说明两个链表相交,如果不是,则说明两个链表不相交。
类似的问题还有判断链表中是否有环。