二叉树广度优先遍历
package program
import (
"container/list"
"testing"
)
func TestTreeWidthSearch(t *testing.T) {
root := &TreeNode{Value: 1}
root.Left = &TreeNode{Value: 2, Left: &TreeNode{Value: 4}, Right: &TreeNode{Value: 5, Left: &TreeNode{Value: 8}}}
root.Right = &TreeNode{Value: 3, Left: &TreeNode{Value: 6}, Right: &TreeNode{Value: 7}}
queue = append(queue, root)
for idx < len(queue) && queue[idx] != nil {
node := queue[idx]
println(node.Value)
idx++
if node.Left != nil {
queue = append(queue, node.Left)
}
if node.Right != nil {
queue = append(queue, node.Right)
}
}
}
var queue []*TreeNode
var idx = 0
var queue2 = list.New()