二叉树的遍历

原文摘自:https://blog.csdn.net/zsy_snake/article/details/80353336

二叉树遍历有三种遍历情况:前序遍历、中序遍历和后续遍历。

var tree = {
    "id": 0,
    "name": "root",
    "left": {
        "id": 1,
        "name": "Simon",
        "left": {
            "id": 3,
            "name": "Carl",
            "left": {
                "id": 7,
                "name": "Lee",
                "left": {
                    "id": 11,
                    "name": "Fate"
                }
            },
            "right": {
                "id": 8,
                "name": "Annie",
                "left": {
                    "id": 12,
                    "name": "Saber"
                }
            }
        },
        "right": {
            "id": 4,
            "name": "Tony",
            "left": {
                "id": 9,
                "name": "Candy"
            }
        }
    },
    "right": {
        "id": 2,
        "name": "right",
        "left": {
            "id": 5,
            "name": "Carl",
        },
        "right": {
            "id": 6,
            "name": "Carl",
            "right": {
                "id": 10,
                "name": "Kai"
            }        
        }
    }
}

// 前序遍历
function DLR(tree){ console.log(tree.name); if(tree.left){ DLR(tree.left); } if(tree.right){ DLR(tree.right); } } DLR(tree)

结果:
  root--> Simon--> Carl--> Lee--> Fate--> Annie--> Saber--> Tony--> Candy--> right--> Carl--> Carl--> Kai


// 中序遍历
    function LDR(tree){
        if(tree.left){
            LDR(tree.left);
        }
        console.log(tree.name,'中序遍历');
        if(tree.right){
            LDR(tree.right);
        }
    }
    LDR(tree)

结果:
   Fate--> Lee--> Carl--> Saber--> Annie--> Simon--> Candy--> Tony--> root--> Carl--> right--> Carl--> Kai


// 后序遍历
    function LRD(tree){
        if(tree.left){
            LRD(tree.left);
        }
        if(tree.right){
            LRD(tree.right);
        }
        console.log(tree.name,'后续遍历');
    }
    LRD(tree)

结果:
      Fate--> Lee--> Saber--> Annie--> Carl--> Candy--> Tony--> Simon--> Carl--> Kai--> Carl--> right--> root

原文地址:https://www.cnblogs.com/linjiu0505/p/11805563.html