二叉树是什么?

  • 一种特殊的树型结构
  • 树中每个节点最多只能有两个子节点(左右)
  • 在 JS 中常用 Object 来模拟二叉树

代码示例

  1. const binaryTree = {
  2. val: 1,
  3. left: {
  4. val: 2,
  5. left: {
  6. val: 3,
  7. left: null,
  8. right: null,
  9. },
  10. right: {
  11. val: 4,
  12. left: {
  13. val: 5,
  14. left: null,
  15. right: null,
  16. },
  17. right: null,
  18. }
  19. },
  20. right: {
  21. val: 6,
  22. left: null,
  23. right: {
  24. val: 7,
  25. left: null,
  26. right: null,
  27. }
  28. }
  29. }

二叉树的先序遍历(DFS) 算法口诀与代码实现

  • 算法口诀
    • ① 访问根节点
    • ② 对根节点的左子树进行先序遍历
    • ③ 对根节点的右子树进行先序遍历
  • 图示

二叉树 - 图1

  • 代码实现
    1. function getResult(binaryTree) {
    2. // 1.定义结果变量
    3. let result = [];
    4. // 2.定义递归函数
    5. const perorder = (root) => {
    6. if(!root) {
    7. return;
    8. }
    9. // 访问根节点
    10. console.log(root.val);
    11. result.push(root.val);
    12. // 对根节点左子树进行先序遍历
    13. perorder(root.left);
    14. // 对根节点右子树进行先序遍历
    15. perorder(root.right);
    16. }
    17. // 3.调用递归函数
    18. perorder(binaryTree);
    19. // 4.返回结果
    20. return result;
    21. }
    22. getResult(binaryTree);