## C# || How To Traverse A Binary Tree Postorder Using C# The following is a module with functions which demonstrates how to traverse a binary tree post order using C#.

1. Binary Tree Traversal – Problem Statement

Given the root of a binary tree, return the postorder traversal of its nodes’ values.

Example 1: ``` Input: root = [1,null,2,3] Output: [3,2,1] ```

Example 2:

``` Input: root = [] Output: [] ```

Example 3:

``` Input: root =  Output:  ```

Example 4: ``` Input: root = [1,2] Output: [2,1] ```

Example 5: ``` Input: root = [1,null,2] Output: [2,1] ```

2. Binary Tree Traversal – Solution

The following is a solution which demonstrates how to traverse a binary tree post order.

``` 2. Binary Tree Traversal - Solution C# // ============================================================================ // Author: Kenneth Perkins // Date: Oct 13, 2021 // Taken From: http://programmingnotes.org/ // File: Solution.cs // Description: Demonstrates how to traverse a binary tree post order // ============================================================================ /** * Definition for a binary tree node. * public class TreeNode { * public int val; * public TreeNode left; * public TreeNode right; * public TreeNode(int val=0, TreeNode left=null, TreeNode right=null) { * this.val = val; * this.left = left; * this.right = right; * } * } */ public class Solution { private List<int> result = new List<int>(); public IList<int> PostorderTraversal(TreeNode root) { Traverse(root); return result; } public void Traverse(TreeNode node) { if (node == null) { return; } Traverse(node.left); Traverse(node.right); result.Add(node.val); } }// http://programmingnotes.org/ 12345678910111213141516171819202122232425262728293031323334353637383940 // ============================================================================//    Author: Kenneth Perkins//    Date:   Oct 13, 2021//    Taken From: http://programmingnotes.org///    File:  Solution.cs//    Description: Demonstrates how to traverse a binary tree post order// ============================================================================/** * Definition for a binary tree node. * public class TreeNode { *     public int val; *     public TreeNode left; *     public TreeNode right; *     public TreeNode(int val=0, TreeNode left=null, TreeNode right=null) { *         this.val = val; *         this.left = left; *         this.right = right; *     } * } */public class Solution {    private List<int> result = new List<int>();        public IList<int> PostorderTraversal(TreeNode root) {        Traverse(root);        return result;            }        public void Traverse(TreeNode node) {        if (node == null) {            return;        }                        Traverse(node.left);                Traverse(node.right);                result.Add(node.val);            }    }// http://programmingnotes.org/ ```

QUICK NOTES:
The highlighted lines are sections of interest to look out for.

The code is heavily commented, so no further insight is necessary. If you have any questions, feel free to leave a comment below.

Once compiled, you should get this as your output for the example cases:

``` [3,2,1] []  [2,1] [2,1] ```