상위 150개 인터뷰중간

이진 트리 직렬화 및 역직렬화

'이진 트리 직렬화 및 역직렬화' 문제에 대한 자세한 가이드 및 Python 구현입니다.

문제 설명

중간

직렬화는 데이터 구조나 개체를 파일이나 메모리 버퍼에 저장하거나 네트워크 연결 링크를 통해 전송하여 나중에 동일하거나 다른 컴퓨터 환경에서 재구성할 수 있도록 비트 시퀀스로 변환하는 프로세스입니다.

이진 트리를 직렬화 및 역직렬화하는 알고리즘을 설계합니다. 직렬화/직렬화 해제 알고리즘의 작동 방식에는 제한이 없습니다. 이진 트리를 문자열로 직렬화할 수 있고 이 문자열을 원래 트리 구조로 역직렬화할 수 있는지 확인하면 됩니다.

트리는 레벨 순서 목록으로 표시됩니다. 두 가지 기능을 구현합니다.

- 트리를 문자열로 변환하는 serialize(root: list) -> str.

- 문자열을 다시 트리로 변환하는 deserialize(data: str) -> list.

테스트를 위해 직렬화한 다음 역직렬화하여 결과를 반환하는 serializeDeserialize(root: list) -> list를 구현합니다.

제약
  • The number of nodes in the tree is in the range [0, 10000]
  • -1000 <= Node.val <= 1000

Example 1
Input
[1,2,3,None,None,4,5]
Output
[1,2,3,None,None,4,5]
Explanation

The tree is serialized to a string and deserialized back to the same tree structure.

Example 2
Input
[]
Output
[]
Explanation

An empty tree serialized and deserialized remains empty.

Need a Hint?
세트나 힙과 같은 트리 관련 데이터 구조를 사용해 보세요.
Edge Cases to Watch
  • 빈 입력 구조
  • 단일 요소 입력
  • 큰 수치 범위

해결할 준비가 되셨나요?

Open the problem in PyRun's browser-based Python editor. Your code runs fully offline — no server required.

편집기에서 열기
Found this breakdown helpful?

PyRun is built and maintained by an independent solo developer. If this helped your interview prep, consider buying a coffee!

Buy me a coffee

권장 Python 리소스

관련 대화형 튜토리얼, 치트 시트, 코드 비교를 통해 지식을 확장하세요.