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;
        }
    }
  • 相关阅读:
    11.文件操作
    10.模块和包
    9.异常
    8.单例模式
    7.类属性、类方法、静态方法
    小学口算题卡---田青正
    个人技术流程(四则运算)--马伟杰
    个人开发流程(四则运算)--张文龙
    个人技术流程(四则运算)--王潮玉
    个人技术流程(四则运算)--毛明明
  • 原文地址:https://www.cnblogs.com/cat520/p/9987953.html
Copyright © 2011-2022 走看看