LeetCode 의 Intersection of two linked list 다른 방법

1009 단어 LeetCode알고리즘
AC 가 답 을 보고 나 니 답 이 매우 간단 하고 자신의 방법 이 너무 복잡 하 다. 문 제 는 원래 두 개의 링크 의 첫 번 째 공공 노드 를 찾 고 없 으 면 NULL 로 돌아 가 는 것 이다.
문 제 를 본 후에 저 는 교차 구조 가 존재 할 수 있다 고 생각 했 습 니 다. 그 결과 에 하나의 링크 를 반전 시 켜 공공 노드 가 존재 하 는 지 여 부 를 구 했 지만 첫 번 째 공공 노드 를 구 할 수 없 었 습 니 다. 그래서 문 제 를 다시 보 니 교차 구조 가 있 을 수 없 었 습 니 다. 이것 은 링크 입 니 다. 한 노드 에 어떻게 next 노드 가 여러 개 있 을 수 있 습 니까? 두 개의 링크 에 공공 노드 가 있 으 면그 끝 부분 은 반드시 같다.그러나 이미 그렇게 많이 썼 으 니 반전 링크 의 방법 에 따라 계속 쓰 세 요. 사실은 우 리 는 특정한 링크 가 몇 번 째 노드 부터 공공 구조 에 들 어간 다 는 것 만 알 면 되 죠. 그래서 여기 서 저 는 x1 을 사용 하여 A 링크 의 비 공공 부분 길 이 를 대표 하고 Y 는 공공 부분 길 이 를 대표 하 며 x2 는 B 링크 의 비 공공 부분 길 이 를 대표 합 니 다.그러면 처음에 우 리 는 A, B 링크 의 길 이 를 알 수 있 었 고 각각 alen = x1 + y, blen = x2 + y 를 알 수 있 었 다.그리고 A 체인 시 계 를 반전 시 킨 후에 우 리 는 B 체인 표 의 끝 점 부터 x1 + x2 의 길 이 를 옮 겨 다 닐 수 있 습 니 다. 이것 을 rlen 으로 설정 하면 x2 = (blen - alen + rlen) / 2 입 니 다. 마지막 으로 B 체인 시 계 를 한 번 더 옮 겨 다 니 면 첫 번 째 공공 노드 를 얻 을 수 있 습 니 다.코드 는 다음 과 같 습 니 다:
4. 567913. 생각 이 너무 복잡 하지만 자신의 반전 링크 의 코드 속 도 를 단련 할 수 있 는 것 도 가치 가 있 습 니 다. 여러분 에 게 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기