728x90
안녕하세요.
오늘도 Easy문제 하나를 풀었습니다.
876. Middle of the Linked List 링크드리스트 문제였는데, 음.. 그냥 링크드리스트가 무엇인지만 알면 풀 수 있는 문제라고 생각했으나,
다른 분들의 풀이를 보니 훨씬 빠르고 간결하게 푸는 방법이 있었습니다.
저는 전체 노드 개수를 구한 후 n/2까지 순회 후 반환하는 무식한 방법으로 접근했습니다.
다른 분의 굉장한 풀이는 다음과 같습니다.
slow포인터와 fast포인터 두 개를 두고,
slow는 하나씩 이동, fast는 두개씩 이동합니다.
fast가 마지막 노드에 도달했을 때 (fast가 노드의 끝을 넘어버려서 null이거나 fast가 노드의 끝에 도달하여 fast.next가 null일 때)
그때 slow가 중간에 도달한 상태이므로 slow를 반환합니다.
이게 하나의 문제 패턴인 것 같습니다.
모든 분들이 다 이렇게 풀었네요?
728x90