Table of Contents
Problem Statement:
Binary Tree Inorder Traversal LeetCode solution
Given the root
of a binary tree, return the inorder traversal of its nodes’ values.
Example 1:
Input:
root = [1,null,2,3]
Output:
[1,3,2]
Example 2:
Input:
root = []
Output:
[]
Example 3:
Input:
root = [1]
Output:
[1]
Constraints:
- The number of nodes in the tree is in the range
[0, 100]
. -100 <= Node.val <= 100
Approach:
1. We will do recursion to find the binary tree inorder traversal. of a tree.
2. In order traversal means first to traverse the left subtree, then the root of the tree, at last, the right subtree (left->root->right).
3. The Base condition of our recursion will be when we reach the leaf node i.e. root will be null.
4. Finally, we’ll be left with binary tree inorder traversal.
Code:
Binary Tree Inorder Traversal C++ solution:
class Solution { public: #define ll int void rec(TreeNode *root,vector<ll>&v) { if(root==NULL) return; rec(root->left,v); v.push_back(root->val); rec(root->right,v); } vector<int> inorderTraversal(TreeNode* root) { vector<ll>v; rec(root,v); return v; } };
Binary Tree Inorder Traversal Java solution:
class Solution { void rec(TreeNode root,List<Integer> ans) { if(root==null) return; rec(root.left,ans); ans.add(root.val); rec(root.right,ans); } public List<Integer> inorderTraversal(TreeNode root) { List<Integer>ans= new ArrayList<>(); rec(root,ans); return ans; } }
Complexity analysis of Binary Tree Inorder Traversal LeetCode solution:
Time Complexity:
Time complexity will be o(n). We are traveling every node only once.
Space Complexity:
Space complexity will be o(n). We are storing the value of every node for our traversal that’s why we are taking space of o(n).