什么是二叉树:
是n(n>=0)个结点的有限集合,该集合或者为空集(称为空二叉树),或者由一个根结点和两棵互不相交的、分别称为根结点的左子树和右子树组成。
前序遍历
题目:144. 二叉树的前序遍历
根左右
/**
* @param {TreeNode} root
* @return {number[]}
*/
var preorderTraversal = function(root) {
let arr = []
function preorder(root) {
if (!root) return
arr.push(root.val)
preorder(root.left)
preorder(root.right)
}
preorder(root)
return arr
};
中序遍历
题目:94. 二叉树的中序遍历
左根右 (升序)
/**
* @param {TreeNode} root
* @return {number[]}
*/
var inorderTraversal = function(root) {
let arr = []
function inorder (root) {
if (!root) return
inorder(root.left)
arr.push(root.val)
inorder(root.right)
}
inorder(root)
return arr
};
后序遍历
题:145. 二叉树的后序遍历
左右根
/**
* @param {TreeNode} root
* @return {number[]}
*/
var postorderTraversal = function(root) {
let arr = []
function postorder(root) {
if (!root) return
postorder(root.left)
postorder(root.right)
arr.push(root.val)
}
postorder(root)
return arr
};
做一些题
var inorderTraversal = function(root) {
let arr = []
function inorder (root) {
if (!root) return
inorder(root.left)
arr.push(root.val)
inorder(root.right)
}
inorder(root)
return arr
};
/**
* @param {TreeNode} root
* @param {number} k
* @return {number}
*/
var kthSmallest = function(root, k) {
let arr = inorderTraversal(root)
return arr[k - 1]
};