재귀가 필요하지 않다면 먼저 깊이를 사용하세요! 스택을 사용하여 먼저 루트 노드를 스택에 푸시합니다. 스택이 비어 있지 않으면 이를 팝하고 현재 노드의 중앙값을 출력합니다. 그런 다음 오른쪽 하위 트리를 먼저 스택에 푸시한 다음 푸시합니다. 왼쪽 하위 트리를 스택에 올려놓고 스택이 비어 있는지 판단하고 루프를 돌립니다... 단계는 다음과 같습니다. 1) 먼저 이진 트리의 루트 노드를 스택에 넣습니다 2) 스택이 비어 있는지 판단하고, 비어 있지 않으면 스택을 팝하고 팝된 트리 노드의 값을 출력 3) 팝된 트리 노드의 오른쪽 하위 트리를 스택에 푸시 4 ) 팝된 트리 노드의 왼쪽 하위 트리를 스택에 밀어넣습니다 5) Loop Back to (2) 이전에 본 방법인데 질문자에게 도움이 될 수 있을까요?
재귀가 필요하지 않다면 먼저 깊이를 사용하세요!
으아악스택을 사용하여 먼저 루트 노드를 스택에 푸시합니다. 스택이 비어 있지 않으면 이를 팝하고 현재 노드의 중앙값을 출력합니다. 그런 다음 오른쪽 하위 트리를 먼저 스택에 푸시한 다음 푸시합니다. 왼쪽 하위 트리를 스택에 올려놓고 스택이 비어 있는지 판단하고 루프를 돌립니다...
단계는 다음과 같습니다.
1) 먼저 이진 트리의 루트 노드를 스택에 넣습니다
2) 스택이 비어 있는지 판단하고, 비어 있지 않으면 스택을 팝하고 팝된 트리 노드의 값을 출력
3) 팝된 트리 노드의 오른쪽 하위 트리를 스택에 푸시
4 ) 팝된 트리 노드의 왼쪽 하위 트리를 스택에 밀어넣습니다
5) Loop Back to (2)
이전에 본 방법인데 질문자에게 도움이 될 수 있을까요?
재귀를 스택으로 교체: https://zh.coursera.org/learn...
깊이가 먼저요? . .
너비 우선 순회를 사용한 다음 해당 노드의 모든 상위 노드를 해당 상태로 저장하고 리프 노드에 도달한 후 출력합니다.