// TypeScript
class TreeNode {
val: number
left: TreeNode | null
right: TreeNode | null
constructor(val?: number, left?: TreeNode | null, right?: TreeNode | null) {
this.val = (val===undefined ? 0 : val)
this.left = (left===undefined ? null : left)
this.right = (right===undefined ? null : right)
}
}
function inorderTraversal(root: TreeNode | null): number[] {
if (root === null) {
return [];
}
const ans: number[] = [];
const backtrack = (node: TreeNode) => {
if (node.left) {
backtrack(node.left);
}
ans.push(node.val);
if (node.right) {
backtrack(node.right);
}
};
backtrack(root);
return ans;
};