二叉树的先序遍历是中间,左边,右边 中序遍历是左边,中间,右边 后序遍历是左边,右边,中间
递归的方法
//先序遍历
var inorderTraversal = function(root) {
//声明一个数组来存放结果
const arr= []
//声明递归函数
function inorder(root){
if(!root) return//节点不存在就返回
//如果存在就将节点的val push进去arr
arr.push(root.val)
//进入递归
inorder(root.left)
inorder(root.right)
}
//调用函数
inorder(root)
//返回结果
return arr
}
迭代的方法
//中序遍历
var inorderTraversal = function(root) {
//声明一个数组来存放结果
const res = [];
//使用栈结构存放数据
const stack =[];
let cur = root;
//设计一个循环
while(cur != null || stack.length > 0){
if(cur != null){
stack.push(cur);
cur = cur.left;
}else{
cur = stack.pop();
res.push(cur.val);
cur = cur.right;
}
}
return res;
}