0
点赞
收藏
分享

微信扫一扫

二叉树、多叉树、图遍历

柠檬果然酸 2022-01-26 阅读 58

二叉树遍历框架

void traverse(TreeNode root){
    if(root == null) return;
    traverse(root.left);
    traverse(root.rigth);
}

多叉树遍历框架

void traverse(Node root){
    if(root == null) return;
    for(Node child : root.children)
        traverse(child);
}

图遍历框架

boolean[] visited;
void traverse(Graph graph,int v){
    //防止走回头路进入闭环
    if(visited[v]) return;
    //前序遍历位置,标记节点v已访问
    visited[v] = true;
    for(TreeNode neighbor : graph.neighbors(v))
        traverse(graph,neighbor);
}

或者如下

boolean[] visited;
void traverse(Graph graph,int v){
     //前序遍历位置,标记节点v已访问
    visited[v] = true;   
    for(int neighbor : graph.neighbors(v)){
        if(!visited[neighbor]){
            //只遍历没标记过得相邻节点
            traverse(graph,neighbor);
        }
    }        
        
}
举报

相关推荐

0 条评论