/**
* Definition for a binary tree node.
* function TreeNode(val) {
* this.val = val;
* this.left = this.right = null;
* }
*/
/**
* @param {TreeNode} root
* @return {number[]}
*
/**
* The goal is to maintain a stack of nodes to visit as we traverse
* down the tree. As we traverse down, We go left and push all the
* left nodes first in the stack. Once we reach to the bottom, we
* store the node value and traverse right.
* 1
* / \
* 2 3 preorder traversal: 4 -> 2 -> 5 -> 1 -> 6 -> 3
* / \ / (left -> root -> right)
* 4 5 6
*/
var inorderTraversal = function (root) {
// In-Order Traversal ->
// 1. Recursively traverse through the left subtree
// 2. Visit current node
// 3. Recursively traverse through the right subtree
// Initialize array of values
let result = [];
// Recursive function to traverse through subtrees
inorder(root, result);
return result;
};
const inorder = (node, result) => {
if (node === null) {
return null;
}
inorder(node.left, result); // Traverse through left subtree
result.push(node.val); // Visit node
inorder(node.right, result); // Traverse through right subtree
};
For further actions, you may consider blocking this person and/or reporting abuse
Top comments (0)