이진 트리에서 모든 경로 찾기

젤롤

"이진 트리가 주어지면 모든 루트에서 리프 경로를 반환"이라는 코딩 문제를 해결하려고합니다.

Input:

   1
 /   \
2     3
 \
  5

Output: ["1->2->5", "1->3"]

나는 하나의 해결책을 보았다

class Solution:
    def binaryTreePaths(self, root: TreeNode) -> List[str]:
        allPath = []
        if root is None:
            return []
        self.find_all_paths_recursive(root, [], allPath)
        return allPath

    def find_all_paths_recursive(self, currNode, currPath, allPath):
        if currNode is None:
            return 
        currPath.append(currNode.val)
        if currNode.left is None and currNode.right is None:
            currOut = '->'.join([str(x) for x in list(currPath)])
            allPath.append(currOut)
        # traverse left sub tree
        self.find_all_paths_recursive(currNode.left, currPath, allPath)
        # traverse right sub tree
        self.find_all_paths_recursive(currNode.right, currPath, allPath)
        del currPath[-1]

위의 코드를 실행하면 [ "1-> 2-> 5", "1-> 3"]의 답이 나왔는데 맞습니다.

나는 아래의 코드 블록을 변경하여 생각 if currNode.left is None and currNode.right is None:

      if currNode.left is None and currNode.right is None:
            #currOut = '->'.join([str(x) for x in list(currPath)])
            #allPath.append(currOut)
            allPath.append(currPath)

결과 [[1,2,5], [1,3]]를 줘야합니다. 그러나이 변경으로 결과 [[], []]가 반환되었습니다. 왜 이것이 작동하지 않는지 궁금합니다.

asd asd

currPath를 직접 추가하려면 해당 순간에 currPath의 사본을 추가해야합니다.

이렇게 :

if currNode.left is None and currNode.right is None:
    #currOut = '->'.join([str(x) for x in list(currPath)])
    # allPath.append(currOut)
    allPath.append(list(currPath))

편집하다:

추가하지 않으면 list재귀로 인해 업데이트되는 allPath에 원래 목록 개체가 추가됩니다. 를 추가하면 lista를합니다 copy of the original list object저장 및 추가 업데이트하지 될합니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

xgboost.dump에서 이진 트리의 모든 경로를 찾습니다.

분류에서Dev

그래프에서 길이가 2 인 모든 경로 찾기

분류에서Dev

PostgreSQL 주어진 플레이어에 대한 모든 경기 찾기

분류에서Dev

주어진 노드에서 트리의 부모 노드 경로 찾기

분류에서Dev

순환없이 그래프에서 가능한 모든 경로 찾기

분류에서Dev

이진 트리에서 주어진 합계로 모든 경로를 인쇄하는 알고리즘

분류에서Dev

파이썬으로 이진 트리의 모든 경로 인쇄

분류에서Dev

이진 트리에서 두 숫자의 경로가 겹치는 숫자 찾기

분류에서Dev

이진 트리에서 노드의 부모 찾기

분류에서Dev

모든 정점에서 알려진 UV로 삼각 측량에서 아이소 커브 찾기

분류에서Dev

BFS를 사용하여 주어진 노드에서 모든 노드의 최단 경로 찾기

분류에서Dev

몽구스에서 group by로 모든 데이터 찾기

분류에서Dev

샌드 박스에서 이름으로 모든 웹 파트 찾기

분류에서Dev

이진 트리에서 가장 긴 짝수 값 경로 찾기, 해당 경로의 반환 길이, 비 재귀

분류에서Dev

모든 드라이브에서 모든 백업을 찾고 파일 경로, 파일 이름 및 파일 크기를 인쇄하는 Powershell 스크립트

분류에서Dev

주어진 이진 트리에서 최대 크기 K의 모든 루트 하위 트리를 찾는 방법은 무엇입니까?

분류에서Dev

파일에서 순서대로 모든 모음이있는 단어 찾기

분류에서Dev

이진 트리 min으로 찾기?

분류에서Dev

조상 경로에서 모든 병합 찾기

분류에서Dev

파이썬에서 완전히 연결된 그래프에서 가능한 모든 경로 찾기

분류에서Dev

참조로 aspx 페이지의 모든 컨트롤 찾기

분류에서Dev

이미지에서 모든 원 찾기

분류에서Dev

주어진 사용자에 대해 변경된 모든 개체 찾기

분류에서Dev

방향 그래프에서 가중치 제한이있는 두 정점 사이의 모든 경로 찾기

분류에서Dev

파이썬에서 특정 이름을 가진 모든 JSON 키 찾기

분류에서Dev

경계 상자에서 모든 지리적 위치 찾기

분류에서Dev

방향이 지정되지 않은 그래프에서 두 정점 사이의 모든 단순 경로에서 모든 * 정점 * 찾기

분류에서Dev

디렉토리 아래의 모든 경로 찾기

분류에서Dev

일반 (이진이 아닌) 목록 트리 트리에 나뭇잎에 대한 모든 경로 나열

Related 관련 기사

  1. 1

    xgboost.dump에서 이진 트리의 모든 경로를 찾습니다.

  2. 2

    그래프에서 길이가 2 인 모든 경로 찾기

  3. 3

    PostgreSQL 주어진 플레이어에 대한 모든 경기 찾기

  4. 4

    주어진 노드에서 트리의 부모 노드 경로 찾기

  5. 5

    순환없이 그래프에서 가능한 모든 경로 찾기

  6. 6

    이진 트리에서 주어진 합계로 모든 경로를 인쇄하는 알고리즘

  7. 7

    파이썬으로 이진 트리의 모든 경로 인쇄

  8. 8

    이진 트리에서 두 숫자의 경로가 겹치는 숫자 찾기

  9. 9

    이진 트리에서 노드의 부모 찾기

  10. 10

    모든 정점에서 알려진 UV로 삼각 측량에서 아이소 커브 찾기

  11. 11

    BFS를 사용하여 주어진 노드에서 모든 노드의 최단 경로 찾기

  12. 12

    몽구스에서 group by로 모든 데이터 찾기

  13. 13

    샌드 박스에서 이름으로 모든 웹 파트 찾기

  14. 14

    이진 트리에서 가장 긴 짝수 값 경로 찾기, 해당 경로의 반환 길이, 비 재귀

  15. 15

    모든 드라이브에서 모든 백업을 찾고 파일 경로, 파일 이름 및 파일 크기를 인쇄하는 Powershell 스크립트

  16. 16

    주어진 이진 트리에서 최대 크기 K의 모든 루트 하위 트리를 찾는 방법은 무엇입니까?

  17. 17

    파일에서 순서대로 모든 모음이있는 단어 찾기

  18. 18

    이진 트리 min으로 찾기?

  19. 19

    조상 경로에서 모든 병합 찾기

  20. 20

    파이썬에서 완전히 연결된 그래프에서 가능한 모든 경로 찾기

  21. 21

    참조로 aspx 페이지의 모든 컨트롤 찾기

  22. 22

    이미지에서 모든 원 찾기

  23. 23

    주어진 사용자에 대해 변경된 모든 개체 찾기

  24. 24

    방향 그래프에서 가중치 제한이있는 두 정점 사이의 모든 경로 찾기

  25. 25

    파이썬에서 특정 이름을 가진 모든 JSON 키 찾기

  26. 26

    경계 상자에서 모든 지리적 위치 찾기

  27. 27

    방향이 지정되지 않은 그래프에서 두 정점 사이의 모든 단순 경로에서 모든 * 정점 * 찾기

  28. 28

    디렉토리 아래의 모든 경로 찾기

  29. 29

    일반 (이진이 아닌) 목록 트리 트리에 나뭇잎에 대한 모든 경로 나열

뜨겁다태그

보관