Reverse Level Order Traversal of a Binary Tree using Recursion

Algorithm Steps

  1. Traverse the binary tree recursively level by level starting from the root.
  2. For each level, record the nodes’ values in an auxiliary structure (e.g., an array or list).
  3. After the traversal, reverse the order of the recorded levels.
  4. Concatenate the values from the reversed levels to obtain the reverse level order traversal.

Reverse Level Order Traversal of a Binary Tree using Recursion - Code Examples Code

Python
Java
JavaScript
C
C++
C#
Kotlin
Swift
Go
Php
class TreeNode:
    def __init__(self, val=0, left=None, right=None):
        self.val = val
        self.left = left
        self.right = right

def reverseLevelOrder(root):
    levels = []
    def helper(node, level):
        if not node:
            return
        if len(levels) == level:
            levels.append([])
        levels[level].append(node.val)
        helper(node.left, level + 1)
        helper(node.right, level + 1)
    helper(root, 0)
    result = []
    for level in reversed(levels):
        result.extend(level)
    return result

# Example usage:
if __name__ == '__main__':
    # Construct binary tree:
    #         1
    #       /   \
    #      2     3
    #     / \   / \
    #    4   5 6   7
    root = TreeNode(1, TreeNode(2, TreeNode(4), TreeNode(5)), TreeNode(3, TreeNode(6), TreeNode(7)))
    print(reverseLevelOrder(root))