给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。
思路
res
,用来存放层序遍历的节点push
到新创建的数组中res
var levelOrder = function(root) { if(!root) return []; let queue = [root]; const res = []; while(queue.length) { let len = queue.length; res.push([]) while(len--) { let n = queue.shift(); res[res.length - 1].push(n.val) if(n.left) queue.push(n.left); if(n.right) queue.push(n.right); } } return res; };
给定一个二叉树的根节点 root ,返回 它的 中序 遍历 。
递归
var inorderTraversal = function(root) { const res = []; const inorder = (n) => { if(!n) return; if(n.left) inorder(n.left); res.push(n.val); if(n.right) inorder(n.right); } inorder(root); return res; };
栈与迭代
var inorderTraversal = function(root) { const res = []; if(!root) return res const stack = [] let p = root; while(stack.length || p) { while(p){ stack.push(p); p = p.left; } const n = stack.pop(); res.push(n.val) p = n.right } return res; };