您的位置:首页 > Web前端 > JavaScript

[LeetCode][JavaScript]Binary Tree Inorder Traversal

2015-09-15 00:19 761 查看

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 you do it iteratively?

https://leetcode.com/problems/binary-tree-inorder-traversal/

树的中序遍历,把节点按照右中左的顺序塞到栈中。

因为js的数组可以放不同类型,放中间的时候放入的是val,两边放入TreeNode对象。

遇到val就直接放入结果中;遇到TreeNode节点,继续按照右中左的顺序入栈。

Binary Tree Preorder Traversal:

/article/7171023.html

Binary Tree Postorder Traversal:

/article/7171025.html

/**
* Definition for a binary tree node.
* function TreeNode(val) {
*     this.val = val;
*     this.left = this.right = null;
* }
*/
/**
* @param {TreeNode} root
* @return {number[]}
*/
var inorderTraversal = function(root) {
var stack = [], res = [], top;
if(root){
stack.push(root);
}

while(stack.length !== 0){
top = stack.pop();
if(typeof top === "number"){
res.push(top);
}else{
if(top.right){
stack.push(top.right);
}
stack.push(top.val);
if(top.left){
stack.push(top.left);
}
}
}
return res;
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: