[Leet Code] Binary Tree Postorder Traversal
Leetcode: https://leetcode.com/problems/binary-tree-postorder-traversal/
Problem:
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 = [1]
Output: [1]
Example 4:

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

Input: root = [1,null,2]
Output: [2,1]
Constraints:
- The number of the nodes in the tree is in the range
[0, 100]
. -100 <= Node.val <= 100
Solution:
# Definition for a binary tree node.
# class TreeNode(object):
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution(object):
def postorderTraversal(self, root):
"""
:type root: TreeNode
:rtype: List[int]
"""
listOfElements = []
self.postorder(root, listOfElements)
return listOfElements
def postorder(self, root, listOfElements):
if root:
self.postorder(root.left, listOfElements)
self.postorder(root.right, listOfElements)
listOfElements.append(root.val)
Explanation:
As we go through the tree in postorder (left, right, root) we append the values to the list.
