교차 링크 (데이터 구조 기초 회고)
아래 의 두 개의 링크 와 같다.
노드 c1 에서 교차 하기 시작 합 니 다.
예시 1:
입력: intersectVal = 8, lista = [4, 1, 8, 4, 5], listB = [5, 0, 1, 8, 4, 5], skipA = 2, skipB = 3 출력: Reference of the node with value = 8 입력 해석: 교차 노드 의 값 은 8 (주의, 두 링크 가 교차 하면 0 이 될 수 없습니다).각자 의 시계 머리 부터 계산 하면 링크 A 는 [4, 1, 8, 4, 5] 이 고 링크 B 는 [5, 0, 1, 8, 4, 5] 이다.A 에서 교차 노드 앞 에 2 개의 노드 가 있다.B 에서 교차 노드 앞 에 세 개의 노드 가 있다.
예시 2:
입력: intersectVal = 2, lista = [0, 9, 1, 2, 4], listB = [3, 2, 4], skipA = 3, skipB = 1 출력: Reference of the node with value = 2 입력 해석: 교차 노드 의 값 은 2 (주의, 두 링크 가 교차 하면 0 이 될 수 없습니다).각자 의 시계 머리 부터 계산 하면 링크 A 는 [0, 9, 1, 2, 4] 이 고 링크 B 는 [3, 2, 4] 이다.A 에서 교차 노드 앞 에 3 개의 노드 가 있다.B 에서 교차 노드 앞 에 1 개의 노드 가 있다.
예시 3:
입력: intersectVal = 0, lista = [2, 6, 4], listB = [1, 5], skipA = 3, skipB = 2 출력: null 입력 해석: 각자 의 표 머리 부터 계산 하면 링크 A 는 [2, 6, 4] 이 고 링크 B 는 [1, 5] 이다.이 두 개의 링크 가 교차 하지 않 기 때문에 intersectVal 은 0 이 어야 하고 skipA 와 skipB 는 임 의 값 일 수 있 습 니 다.설명: 이 두 체인 시 계 는 교차 하지 않 기 때문에 null 로 돌아 갑 니 다.
주의:
만약 두 개의 체인 시계 가 교점 이 없다 면, null 로 돌아 갑 니 다. 결 과 를 되 돌려 준 후에 도 두 개의 링크 는 원래 의 구 조 를 유지 해 야 한다. 전체 링크 구조 에 순환 이 없다 고 가정 할 수 있다. 프로그램 은 O (n) 시간의 복잡 도 를 최대한 만족 시 키 고 O (1) 메모리 만 사용 합 니 다.링크:https://leetcode-cn.com/problems/intersection-of-two-linked-lists
이 문제 에서 제 생각 은 링크 의 길이 와 비교적 긴 링크 로 두 개의 링크 의 차 이 를 이동 시 켜 두 개의 링크 의 길이 가 같 고 길이 가 같다 는 것 입 니 다. 두 개의 지침 을 각각 두 개의 링크 를 옮 겨 다 니 면 교차 여부 와 교차 하 는 첫 번 째 노드 를 얻 을 수 있 습 니 다.
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {
if(headA==nullptr||headB==nullptr)
{
return NULL;
}
int a=0;
int b=0;
ListNode *p=headA;
ListNode *q=headB;
while(headA!=nullptr)
{
a++;
headA=headA->next;
}
while(headB!=nullptr)
{
b++;
headB=headB->next;
}
if(a>b)
{
while(a-b>0)
{
p=p->next;
a--;
}
}
else
{
while(b-a>0)
{
q=q->next;
b--;
}
}
while(p!=nullptr)
{
if(p==q)
{
return p;
}
p=p->next;
q=q->next;
}
return nullptr;
}
};
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
양 방향 링크 질서 있 게 삽입오늘 은 본의 아니 게 데이터 구 조 를 펼 쳤 는데 갑자기 양 방향 링크 를 쓸 어 버 리 고 코드 코드 코드 를 다시 연습 하려 고 했다.3, 2 분 만 에 다 써 서 운행 할 때 어색 하 다.출력 이 없 음 을...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.