深度遍历:
前序遍历:(根左右)
var preorderTraversal = function(root) {
let res=[]
function preorder(root){
if(root==null){
return
}
res.push(root.val)
preorder(root.left)
preorder(root.right)
}
preorder(root)
return res
};
中序遍历:(左根右)
var inorderTraversal = function(root) {
let res=[]
var inorder =function (root){
if(root==null){
return ;
}
inorder(root.left)
res.push(root.val)
inorder(root.right)
}
inorder(root)
return res
};
后序遍历:(左右根)
var postorderTraversal = function(root) {
let res=[]
function postorder(root){
if(root==null){
return
}
postorder(root.left)
postorder(root.right)
res.push(root.val)
}
postorder(root)
return res
};
广度遍历:
层序遍历:
var levelOrder = function(root) {
let res=[],queue=[]
queue.push(root)
if(!root){
return res
}
while(queue.length){
let curleve=[]
let length=queue.length
for(let i=0;i<length;i++){
let node = queue.shift()
curleve[i]=node.val
if(node.left){queue.push(node.left)}
if(node.right){queue.push(node.right)}
}
res.push(curleve)
}
return res
};