Golang 程序采用后序遍历方式(递归)遍历给定的树。
示例
假设我们有以下二叉树。
后序树遍历输出 − 2 4 5 3 6 7 1。
解决该问题的思路
步骤 1 − 如果给定树的根节点为 nil,则返回;否则,按照下面的步骤进行操作。
步骤 2 − 遍历左子树。
步骤 3 − 遍历右子树。
步骤 4 − 打印根节点数据。
示例
package main import "fmt" type Node struct { data int left *Node right *Node } func (root *Node)PostOrderTraversal(){ if root !=nil{ root.left.PostOrderTraversal() root.right.PostOrderTraversal() fmt.Printf("%d ", root.data) } return } func main(){ tree := Node{1, &Node{2, &Node{4, nil, nil}, &Node{5, nil, nil}}, &Node{3, &Node{6, nil, nil}, &Node{7, nil, nil}}} fmt.Printf("Post Order Traversal of the given tree is: ") tree.PostOrderTraversal() }
输出
Post Order Traversal of the given tree is: 4 5 2 6 7 3 1
广告