Rabi Siddique
179 words
1 minutes
Implementing Level Order Traversal of a Binary Tree in Go

Level order traversal is a common algorithm used to traverse a binary tree level by level. Let’s see my the code.

TreeNode Structure#

The TreeNode struct represents a node in a binary tree. Each node contains a value (Val), a pointer to the left child (Left), and a pointer to the right child (Right).


package DSA

type TreeNode struct {
	Val   int
	Left  *TreeNode
	Right *TreeNode
}

Level Order Traversal Function#

The levelOrder function performs a level order traversal on a binary tree and returns the values of the nodes in a 2D slice, where each inner slice represents a level of the tree.


func levelOrder(root *TreeNode) [][]int {
	if root == nil {
		return [][]int{}
	}

	queue := []*TreeNode{root}
	output := [][]int{}

	for len(queue) != 0 {
		levelSize := len(queue)
		var level []int

		for i := 0; i < levelSize; i++ {
			currentNode := queue[0]
			queue = queue[1:]
			level = append(level, currentNode.Val)

			if currentNode.Left != nil {
				queue = append(queue, currentNode.Left)
			}

			if currentNode.Right != nil {
				queue = append(queue, currentNode.Right)
			}
		}

		output = append(output, level)

	}

	return output

}

Implementing Level Order Traversal of a Binary Tree in Go
https://rabisiddique.com/posts/level-order-traversal-go/
Author
Rabi Siddique
Published at
2024-02-13