Binary Tree inorder Traversal
Given a binary tree, return the inorder traversal of its nodes ' values.
For example:
Given binary Tree {1,#,2,3}
,
1 2 / 3
Return [1,3,2]
.
Note:recursive solution is trivial, could do it iteratively?
https://leetcode.com/problems/binary-tree-inorder-traversal/
The central sequence of the tree is traversed, and the nodes are plugged into the stack in the right and left order.
Because JS array can put different types, placed in the middle of the time is Val, both sides into the TreeNode object.
Encountered Val directly into the results, encountered TreeNode node, continue to the right and left in the order into the stack.
1 /**2 * Definition for a binary tree node.3 * Function TreeNode (val) {4 * This.val = val;5 * This.left = This.right = null;6 * }7 */8 /**9 * @param {TreeNode} rootTen * @return {number[]} One */ A varInordertraversal =function(root) { - varstack = [], res =[], top; - if(root) { the if(root.right) { - Stack.push (root.right); - } - Stack.push (root.val); + if(root.left) { - Stack.push (root.left); + } A } at - while(stack.length!== 0){ -top =Stack.pop (); - if(typeoftop = = = "Number"){ - Res.push (top); -}Else{ in if(top.right) { - Stack.push (top.right); to } + Stack.push (top.val); - if(top.left) { the Stack.push (top.left); * } $ }Panax Notoginseng } - returnRes; the};
[Leetcode] [JavaScript] Binary Tree inorder Traversal