1 Star 0 Fork 0

moewang/LeetCode_EveryDay

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
94.二叉树的中序遍历.js 1.18 KB
一键复制 编辑 原始数据 按行查看 历史
moewang0321 提交于 2020-09-19 12:56 . 2020/09/19
/*
* @lc app=leetcode.cn id=94 lang=javascript
*
* [94] 二叉树的中序遍历
*/
// @lc code=start
/**
* 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 arr = [];
// if (!root) return [];
// if (root.left) {
// arr = arr.concat(inorderTraversal(root.left))
// }
// arr.push(root.val)
// if (root.right) {
// arr = arr.concat(inorderTraversal(root.right))
// }
// return arr
// 迭代
var res = [];
// 定义栈
var s = [];
var p = root;
/*
对任一节点p
若 左孩子 不为空,p入栈并把左孩子置为当前p,以此类推
若 左孩子 为空,取栈顶元素出栈,当问该节点,然后置 右孩子 为p
直到p为null且栈为空时结束遍历
*/
while (p || s.length) {
while (p) {
s.push(p);
p = p.left;
}
p = s.pop();
res.push(p.val);
p = p.right;
}
return res;
};
// @lc code=end
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/moewang0321/LeetCode_EveryDay.git
git@gitee.com:moewang0321/LeetCode_EveryDay.git
moewang0321
LeetCode_EveryDay
LeetCode_EveryDay
master

搜索帮助