Golang的引用传递目前只想到封装到struct中,传递*struct。
    也有再func中写func的,利用变量的作用域达到目的,如:

    1. func leafSimilar(root1, root2 *TreeNode) bool {
    2. vals := []int{}
    3. var dfs func(*TreeNode)
    4. dfs = func(node *TreeNode) {
    5. if node == nil {
    6. return
    7. }
    8. if node.Left == nil && node.Right == nil {
    9. vals = append(vals, node.Val)
    10. return
    11. }
    12. dfs(node.Left)
    13. dfs(node.Right)
    14. }
    15. dfs(root1)
    16. vals1 := append([]int(nil), vals...)
    17. vals = []int{}
    18. dfs(root2)
    19. if len(vals) != len(vals1) {
    20. return false
    21. }
    22. for i, v := range vals1 {
    23. if v != vals[i] {
    24. return false
    25. }
    26. }
    27. return true
    28. }

    不像C++void getary(TreeNode* head,vector<int> &ary){}加个&就行