
Given the root of a binary tree, return the values in pre-order traversal: visit the current node, then the left subtree, then the right subtree. Implement the traversal and handle an empty tree correctly.
root = [1,null,2,3]Output[1,2,3]WhyVisit 1 first, then 2, then 3.root = [1,2,3,4,5]Output[1,2,4,5,3]WhyRoot is visited before its left and right subtrees.`0 <= number of nodes <= 10^4``-10^4 <= Node.val <= 10^4`The tree may be empty