实现二叉树先序,中序和后序遍历
什么是二叉树的先序中序后序遍历呢?
我的简单理解就是,先中后指的是root根节点的位置,比如先序就是根节点放在前面
同理,中序是根节点放在中间
剩下的位置由左右节点来分配,都是先左后右
描述
分别按照二叉树先序,中序和后序打印所有的节点。
示例1
输入:
{1,2,3}
返回值:
[[1,2,3],[2,1,3],[2,3,1]]
代码
这里写的是三合一函数
/*
* function TreeNode(x) {
* this.val = x;
* this.left = null;
* this.right = null;
* }
*/
/**
*
* @param root TreeNode类 the root of binary tree
* @return int整型二维数组
*/
function threeOrders( root ) {
// write code here
let arr1=[]
let arr2=[]
let arr3=[]
return three(root,arr1,arr2,arr3)
}
function three(root,arr1,arr2,arr3){
if(root==null) return root
arr1.push(root.val)
three(root.left,arr1,arr2,arr3)
arr2.push(root.val)
three(root.right,arr1,arr2,arr3)
arr3.push(root.val)
return [arr1,arr2,arr3]
}
module.exports = {
threeOrders : threeOrders
};