zoukankan      html  css  js  c++  java
  • N叉树的前后序遍历和最大深度

    package NTree;
    
    import java.util.ArrayList;
    import java.util.List;
    
    /**
     * N叉树的前后序遍历和最大深度
     */
    public class Ntree {
        class Node {
            public int val;
            public List<Node> children;
    
            public Node() {}
    
            public Node(int _val,List<Node> _children) {
                val = _val;
                children = _children;
            }
        }
    
        public int maxDepth(Node root) {
            if (root == null) {
                return 0;
            } else {
                int max = 0;
                for (int i = 0; i < root.children.size(); i++) {  // 遍历子结点,找出子结点中的最大深度
                    max = Math.max(max, maxDepth(root.children.get(i)));
                }
                return 1+max;
            }
        }
    
        List<Integer> pre_list = new ArrayList<>();
        public List<Integer> preorder(Node root) {
            if (root == null) {
                return pre_list;
            }
            pre_list.add(root.val);
            for (Node node : root.children) {
                preorder(node);
    
            }
            return pre_list;
        }
    
        List<Integer> post_list = new ArrayList<>();
        public List<Integer> postorder(Node root) {
            if (root == null) {
                return post_list;
            }
            for (Node node : root.children) {
                postorder(node);//起到遍历到最后一个元素的作用,存入在最后做
    
            }
            post_list.add(root.val);//遍历到最后一个时候,就会存了,不需要每次都存节点所有子节点,如上种做法那样
            return post_list;
        }
    }
  • 相关阅读:
    calico网络异常,不健康
    k8s部署xxl-job-admin
    K8S
    二进制部署k8s高可用
    kubernetes集群部署redis5.0.6单机版
    K8s之MySQL实现数据持久化
    Kubernetes网络
    Oracle数据表锁死的解决办法
    查询各个表的详情
    Oracle-查看所有表、字段以及表注释和字段注释
  • 原文地址:https://www.cnblogs.com/cat520/p/9987953.html
Copyright © 2011-2022 走看看