preorder traversal golang

package main

import "fmt"

type Node struct {
    Key   int
    Left  *Node
    Right *Node
}

func preorderTraversal(node *Node) {
    if node != nil {
        // Step 1: Visit the root node
        fmt.Printf("%d ", node.Key)

        // Step 2: Traverse the left subtree
        preorderTraversal(node.Left)

        // Step 3: Traverse the right subtree
        preorderTraversal(node.Right)
    }
}

func main() {
    // Example usage
    root := &Node{Key: 1}
    root.Left = &Node{Key: 2}
    root.Right = &Node{Key: 3}
    root.Left.Left = &Node{Key: 4}
    root.Left.Right = &Node{Key: 5}

    fmt.Println("Preorder Traversal:")
    preorderTraversal(root)
}