Leetcode Note: Go - Binary Tree Preorder Traversal

Binary Tree Preorder Traversal - LeetCode
https://leetcode.com/problems/binary-tree-preorder-traversal/

  • Go 言語で取り組んだメモ

所感

  • 再帰呼び出しで実装できそう

回答

/**
 * Definition for a binary tree node.
 * type TreeNode struct {
 *     Val int
 *     Left *TreeNode
 *     Right *TreeNode
 * }
 */
func preorderTraversal(root *TreeNode) []int {
    traversal := []int{}

    var preorder func(*TreeNode)
    
    preorder = func(root *TreeNode) {
        if root == nil {
            return
        }
        
        traversal = append(traversal, root.Val)
        preorder(root.Left)
        preorder(root.Right)
    }
    
    preorder(root)

    return traversal
}
  • return する配列を定義しつつ、再帰で操作していく感じ
  • 昔やった問題のコードをほぼパクったものの、自前で実装できて良かった