zoukankan      html  css  js  c++  java
  • 589_N叉树的前序遍历

    589_N叉树的前序遍历

    package 二叉树.BT;
    
    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.Deque;
    import java.util.LinkedList;
    import java.util.List;
    /**
     * https://leetcode-cn.com/problems/n-ary-tree-preorder-traversal/
     * @author Huangyujun
     *
     */
    public class _589_N叉树的前序遍历 {
        public class Node {
            public int val;
            public List<Node> children;
    
            public Node() {
            }
    
            public Node(int _val) {
                val = _val;
            }
    
            public Node(int _val, List<Node> _children) {
                val = _val;
                children = _children;
            }
        }
        //递归实现
        List<Integer> list1 = new ArrayList<Integer>();
        public List<Integer> preorder1(Node root) {
            if(root == null)    return list1;
            //先拿到当前结点
            list1.add(root.val);
            for(Node node: root.children) {
                preorder1(node);
            }
            return list1;
        }
        
        //要求迭代实现
        //利用到了栈的特点跟集合倒序(拿到最后一层的孩子树结点)
          public List<Integer> preorder(Node root) {
                LinkedList<Integer> output = new LinkedList<>();
                if (root == null) {
                    return output;
                }
    
                LinkedList<Node> stack = new LinkedList<>();
                stack.add(root);
                while (!stack.isEmpty()) {
                    Node node = stack.pop();
                    output.add(node.val);
                    //前序(假设是二叉树时:左边先(左左左到最后一个孩子(所以逆序一下孩子的顺序啊)))
                    Collections.reverse(node.children);
                    for (Node item : node.children) {
                        stack.push(item);
                    }
                }
                return output;
            }    
    }

    本文来自博客园,作者:一乐乐,转载请注明原文链接:https://www.cnblogs.com/shan333/p/15709256.html

  • 相关阅读:
    POJ 2774 Long Long Message
    Jmeter学习——5
    Jmeter学习——4
    Jmeter学习——10
    Jmeter学习——9
    使用 JMeter 完成常用的压力测试 [转]
    Jmeter学习——3
    Jmeter学习——7
    Jmeter学习——11
    Jmeter学习——8
  • 原文地址:https://www.cnblogs.com/shan333/p/15709256.html
Copyright © 2011-2022 走看看