Golang的引用传递目前只想到封装到struct中,传递*struct。
也有再func中写func的,利用变量的作用域达到目的,如:
func leafSimilar(root1, root2 *TreeNode) bool {
vals := []int{}
var dfs func(*TreeNode)
dfs = func(node *TreeNode) {
if node == nil {
return
}
if node.Left == nil && node.Right == nil {
vals = append(vals, node.Val)
return
}
dfs(node.Left)
dfs(node.Right)
}
dfs(root1)
vals1 := append([]int(nil), vals...)
vals = []int{}
dfs(root2)
if len(vals) != len(vals1) {
return false
}
for i, v := range vals1 {
if v != vals[i] {
return false
}
}
return true
}
不像C++void getary(TreeNode* head,vector<int> &ary){}
加个&就行