• Lc257_二叉树的所有路径


    package com.example.leetcode;
    
    import java.util.ArrayList;
    import java.util.List;
    
    /**
     * @description: 257. 二叉树的所有路径
     * 给定一个二叉树,返回所有从根节点到叶子节点的路径。
     * <p>
     * 说明: 叶子节点是指没有子节点的节点。
     * <p>
     * 示例:
     * <p>
     * 输入:
     * <p>
     * 1
     * /   
     * 2     3
     * 
     * 5
     * <p>
     * 输出: ["1->2->5", "1->3"]
     * <p>
     * 解释: 所有根节点到叶子节点的路径为: 1->2->5, 1->3
     * @author: licm
     * @create: 2021-04-19 20:35
     **/
    public class Lc257_二叉树的所有路径 {
        /**
         * 思路:dfs,记录所有路径,直到到最后一个节点
         *
         * @param root
         * @return
         */
        public static List<String> binaryTreePaths(TreeNode root) {
            List<String> paths = new ArrayList<>();
            traversal(root, "", paths);
            return paths;
        }
    
        static void traversal(TreeNode root, String path, List<String> paths) {
            if (root == null) {
                return;
            }
            path += root.val;
            if (root.left == null && root.right == null) {
                paths.add(path);
            }
            path += "->";
            traversal(root.left, path, paths);
            traversal(root.right, path, paths);
        }
    
        public static void main(String[] args) {
    
            Integer[] arr = new Integer[]{1, 2, 3, 4, 5, 6, 7};
            TreeNode root = CreateNode.createTree(arr).get(0);
            binaryTreePaths(root).forEach(n -> {
                System.out.println(n);
            });
    
        }
    
    }
    
    
    不会,我可以学;落后,我可以追赶;跌倒,我可以站起来!
  • 相关阅读:
    Linux 资源监控整体分析-TOP
    GO基础之闭包
    GO基础之函数的高级用法
    GO基础之函数
    GO基础之流程控制语句
    数据结构导论(第二章线性表)
    JVM 参数配置
    GO基础之变量的使用
    数据结构导论(第一章概论)
    网络经济与企业管理(第11章:企业文化管理)
  • 原文地址:https://www.cnblogs.com/xiaoshahai/p/14678637.html
Copyright © 2020-2023  润新知