Leetcode the above topics are as follows:
Write a program to find the node at which the intersection of the singly linked lists begins.
For example, the following, linked lists:
A: a1→a2 c1→c2→c3 B: b1→b2→b3
Begin to intersect at node C1.
Notes:
- If The linked lists has no intersection at all, return
null
.
- The linked lists must retain their original structure after the function returns.
- You may assume there is no cycles anywhere in the entire linked structure.
- Your code should preferably run in O (n) time and use only O (1) memory.
My workaround is as follows:/**
* Definition for singly-linked list.
* Public class ListNode {
* int val;
* ListNode Next;
* ListNode (int x) {
* val = x;
* next = NULL;
* }
* }
*/
public class Solution {
Public ListNode Getintersectionnode (ListNode heada, ListNode headb) {
int Lengtha = 0,LENGTHB = 0;
For (listnode head= heada;head!=null;head = head.next)
{
lengtha++;
}
for (listnode head = Headb;head!=null;head = Head.next)
{
lengthb++;
}
if (LENGTHA>=LENGTHB)
{
for (int i=0;i<lengtha-lengthb;i++)
{
Heada = Heada.next;
}
}
Else
{
for (int i=0;i<lengthb-lengtha;i++)
{
HEADB = Headb.next;
}
}
For (listnode Newa =heada,newb = Headb;newa!=null&&newb!=null;newa = NEWA.NEXT,NEWB = NewB.next)
{
if (NEWA==NEWB)
{
return Newa;
}
}
return null;
}
}
Copyright NOTICE: This article for Bo Master original article, without Bo Master permission not reproduced.
(Leetcode) The first public node of the two list