题目描述:
输入两个链表,找出它们的第一个公共结点。
答案太巧妙,本猪完全没有想到,故在此记录一下:
首先依次遍历两个链表,记录两个链表的长度m和n,如果 m > n,那么我们就先让长度为m的链表走m-n个结点,然后两个链表同时遍历,当遍历到相同的结点的时候停止即可。对于 m < n,同理。
因为每个节点都只会有一个next属性,故当存在一个公共节点时,两个链表在此之后直至链表结束都会是重合的,故可以直接从短的链表长度开始同时遍历。
(至此信心已经被打击到谷底了:( )
题目描述:
输入两个链表,找出它们的第一个公共结点。
答案太巧妙,本猪完全没有想到,故在此记录一下:
首先依次遍历两个链表,记录两个链表的长度m和n,如果 m > n,那么我们就先让长度为m的链表走m-n个结点,然后两个链表同时遍历,当遍历到相同的结点的时候停止即可。对于 m < n,同理。
因为每个节点都只会有一个next属性,故当存在一个公共节点时,两个链表在此之后直至链表结束都会是重合的,故可以直接从短的链表长度开始同时遍历。
(至此信心已经被打击到谷底了:( )
本文标题:Python实现两个链表的第一个公共节点
本文链接:https://www.haomeiwen.com/subject/agwmjftx.html
网友评论