二叉树的定义:

    1. 可以没有根结点,作为一颗空树
    2. 如果不是空树,必须由根结点,左子树和右子树组成,而且左右子树都是二叉树

    js 中使用对象来实现二叉树,由三部分组成:

    1. 数据域
    2. 左结点引用(左子树根结点)
    3. 右结点引用(右子树根结点)

    在创建二叉树结点时,先把左右结点引用预置为 null

    1. // 二叉树结点构造函数
    2. function TreeNode(val){
    3. this.val = val
    4. this.left = this.right = null
    5. }
    6. // 创建一个结点
    7. nodeA = new TreeNode("A")

    一个二叉树的结构如图:
    image.png
    这个二叉树的对象表示和创建过程如下:

    1. // 对象表示
    2. const tree = {
    3. val:'A',
    4. left:{
    5. val: 'B',
    6. left:{
    7. val: 'D',
    8. },
    9. right:{
    10. val:'E'
    11. }
    12. },
    13. right:{
    14. val: 'C',
    15. right: {
    16. val: 'F'
    17. }
    18. }
    19. }
    20. // 创建:先创建结点,再连接引用
    21. function TreeNode(val){
    22. this.val = val
    23. this.left = this.right = null
    24. }
    25. const root = new TreeNode('A')
    26. const B = new TreeNode('B')
    27. const C = new TreeNode('C')
    28. const D = new TreeNode('D')
    29. const E = new TreeNode('E')
    30. const F = new TreeNode('F')
    31. root.left = B
    32. root.right = C
    33. B.left = D
    34. B.right = E
    35. C.right = F