算法 - 如何不用递归 列出 树(多叉) 中根节点到叶节点的所有路径(Java)
天蓬老师
天蓬老师 2017-04-18 10:51:58
0
4
631

比如,对于下面这个二叉树,它所有的路径为:

8 -> 3 -> 1

8 -> 2 -> 6 -> 4

8 -> 3 -> 6 -> 7

8 -> 10 -> 14 -> 13

怎么用Java去实现?

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

모든 응답(4)
阿神

재귀가 필요하지 않다면 먼저 깊이를 사용하세요!
스택을 사용하여 먼저 루트 노드를 스택에 푸시합니다. 스택이 비어 있지 않으면 이를 팝하고 현재 노드의 중앙값을 출력합니다. 그런 다음 오른쪽 하위 트리를 먼저 스택에 푸시한 다음 푸시합니다. 왼쪽 하위 트리를 스택에 올려놓고 스택이 비어 있는지 판단하고 루프를 돌립니다...
단계는 다음과 같습니다.
1) 먼저 이진 트리의 루트 노드를 스택에 넣습니다
2) 스택이 비어 있는지 판단하고, 비어 있지 않으면 스택을 팝하고 팝된 트리 노드의 값을 출력
3) 팝된 트리 노드의 오른쪽 하위 트리를 스택에 푸시
4 ) 팝된 트리 노드의 왼쪽 하위 트리를 스택에 밀어넣습니다
5) Loop Back to (2)
이전에 본 방법인데 질문자에게 도움이 될 수 있을까요?

으아악
Ty80

재귀를 스택으로 교체: https://zh.coursera.org/learn...

大家讲道理

깊이가 먼저요? . .

洪涛

너비 우선 순회를 사용한 다음 해당 노드의 모든 상위 노드를 해당 상태로 저장하고 리프 노드에 도달한 후 출력합니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿