练习:等价二叉查找树:
方法一:使用go
思路:
- 准备两个信道
- 两棵树分别同时写入自己的信道,写入一个数据后立刻读出数据 (为使该步骤顺利进行,需要将两个
Walk
加上go
) - 对比读出的数据,一旦数据不同 return false
为什么选择没有缓冲的信道?
- 防止出现ch1在读出第1个数据,ch2已经在读出第2个数据的情况,那样会误判为数据不一样return false
package main
import (
"fmt"
"golang.org/x/tour/tree"
)
// Walk 步进 tree t 将所有的值从 tree 发送到 channel ch。
func Walk(t *tree.Tree, ch chan int) {
// 输出左边;
if nil != t.Left {
Walk(t.Left, ch)
}
// 输出中间;
ch <- t.</