Este artigo descreve o método Java para imprimir todos os caminhos da árvore binária. Compartilhe -o para sua referência, como segue:
pergunta:
Dê uma árvore binária e imprima todos os caminhos.
Por exemplo, para a seguinte árvore binária, todos os seus caminhos são:
8 -> 3 -> 1
8 -> 2 -> 6 -> 4
8 -> 3 -> 6 -> 7
8 -> 10 -> 14 -> 13
Ideias:
A partir do nó raiz, coloque seu próprio valor em uma matriz e depois passe essa matriz para o nó filho. O nó filho também coloca seu próprio valor nessa matriz e passa para o nó filho até que este nó seja um nó foliar e, em seguida, imprime a matriz. Então, precisamos usar a recursão aqui.
Código:
/** Dada uma árvore binária, imprime todos os seus caminhos de raiz a folhas, um por linha. Usa um ajudante recursivo para fazer o trabalho. PrintPaths (raiz, caminho, 0);}/** Recursive PrintPaths Helper-dado um nó e uma matriz que contém o caminho do nó raiz até, mas não incluindo esse nó, imprime todos os caminhos da folha raiz. // Anexe este nó ao caminho do caminho do caminho [pathlen ++] = node.value; // é uma folha, então imprima o caminho que levou aqui se (node.leftchild == null && node.rightChild == null) {PrintArray (pathlen); } else {//, caso contrário, tente ambos as subtinas PrintPaths (node.leftchild, path, pathlen); PrintPaths (Node.rightChild, Path, Pathlen); }}/** Utilitário que imprime as cordas de uma matriz em uma linha. } System.out.println ();}Nota: Você pode usar apenas uma matriz + um valor para imprimir o caminho necessário. Se você usar uma estrutura de lista vinculada como o LinkedList, ela não funcionará. Vale a pena analisar as razões, é muito interessante.
Para obter mais informações sobre os algoritmos Java, os leitores interessados neste site podem visualizar os tópicos: "Estrutura de dados Java e tutorial de algoritmo", "Resumo das dicas de nó da operação Java Dom", "Resumo de dicas de operação de Java e Operação de Java" e "Resumo de Java cache" Tips "TIPS"
Espero que este artigo seja útil para a programação Java de todos.