树的遍历
前序遍历:中-左-右
var preorderTraversal = function(root) {if(!root) return []var number = []number.push(root.val)number = number.concat(preorderTraversal(root.left))number = number.concat(preorderTraversal(root.right))return number};
中序遍历:左-中-右
var inorderTraversal = function(root) {if(!root) return [];var num = []num = num.concat(inorderTraversal(root.left));num.push(root.val);num = num.concat(inorderTraversal(root.right))return num};
后序遍历:左-右-中
var postorderTraversal = function(root) {if(!root) return [];var num = []num = num.concat(postorderTraversal(root.left));num = num.concat(postorderTraversal(root.right))num.push(root.val);return num};
总结: 记不住前中后遍历的顺序的同学可以记住 前中后遍历是针对根节点来说的,而左节点一直在右节点前面,前序遍历即中节点-左-右,后序即中节点在最后,即左-右-中
层序遍历广度优先搜索
先访问根节点及相邻节点,再遍历二级节点,随后是三级节点
