Golang 程序以中序遍历(递归)遍历给定的树。
示例
假设我们有一棵树,如下所示。
中序树遍历输出 - 4 2 5 1 6 3 7
解决此问题的步骤
步骤 1 - 如果给定树的根节点为 nil,则返回;否则,执行以下步骤。
步骤 2 - 遍历左子树。
步骤 3 - 打印根节点数据。
步骤 4 - 遍历右子树。
示例
package main import "fmt" type Node struct { data int left *Node right *Node } func (root *Node)InOrderTraversal(){ if root !=nil{ root.left.InOrderTraversal() fmt.Printf("%d ", root.data) root.right.InOrderTraversal() } 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("In Order Traversal of the given tree is: ") tree.InOrderTraversal() }
输出
In Order Traversal of the given tree is: 4 2 5 1 6 3 7
广告