==========================努力奋斗财源广进==========================
输入两个无环的单向链表,找出它们的第一个公共结点,如果没有公共节点则返回空。(注意因为传入数据是链表,所以错误测试数据的提示是用其他方式显示的,保证传入数据是正确的)
import java.util.*;
/*
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}*/
public class Solution {
public ListNode FindFirstCommonNode(ListNode pHead1, ListNode pHead2) {
ListNode l1 = pHead1;
ListNode l2 = pHead2;
while(l1 != l2){
l1 = (l1 == null) ? pHead2 : l1.next;
l2 = (l2 == null) ? pHead1 : l2.next;
}
return l1;
}
}
//待定
此题的解法更多的是一种投巧的方法,如果想到了,很快就能完成,但是如果想不到就不太行。 解题的关键就是两个指针,把两个链表均走一遍,由于速度是一样的,因此如果有公共节点,一定能找到。
评论区记录复习记录
评论