• 【每日一题-leetcode】589.N叉树的前序遍历


    589.N叉树的前序遍历

    1. N叉树的前序遍历

    难度简单71

    给定一个 N 叉树,返回其节点值的前序遍历。

    例如,给定一个 3叉树 :

    返回其前序遍历: [1,3,5,6,2,4]。

    1.递归

     //前序遍历  根左右  递归调用即可。
            //先将节点的值存储到linkedList中
        
            LinkedList<Integer> linkedList = null;
            public List<Integer> preorder(Node root) {
                linkedList = new LinkedList();
                return root == null ? new ArrayList() : recur(root);
            }
        
            public LinkedList<Integer> recur(Node root){
                if(root == null)  return null;
                linkedList.add(root.val);
                for(Node node : root.children){
                    recur(node);
                }
                return linkedList;
            }
    

    2.栈迭代

    //迭代
    //前序遍历 根-左-右
    //1.将根节点存储到stack中
    //2.逆序将子节点添加到栈中 比如 push的顺序为 2 3 4  则输出的顺序为 4 3 2 
    public List<Integer> preorder(Node root) {
        if(root == null) return new ArrayList();
        List<Integer> list = new ArrayList();
        Stack<Node> stack = new Stack();
    
        stack.push(root);
    
        while(!stack.isEmpty()){
            root = stack.pop();
            list.add(root.val);
            for(int i=root.children.size()-1;i>=0;i--){
                stack.push(root.children.get(i));
            }
        }
        return list;
    }
    
  • 相关阅读:
    获取当前时区时间
    python lambda表达式详解
    Odoo 12开发之开发环境准备
    初步了解odoo12
    web前端面试题
    实现一个优先级队列
    面试题
    python读取和生成excel文件
    Django基础
    virtualenv
  • 原文地址:https://www.cnblogs.com/qxlxi/p/12860645.html
Copyright © 2020-2023  润新知