zoukankan      html  css  js  c++  java
  • leetcode二叉树257. 二叉树的所有路径

    考点 dfs bfs,注意最后一个元素的处理

    package binarytree.binaryTreePaths;
    
    import binarytree.untils.GenerateTreeNode;
    import binarytree.untils.TreeNode;
    
    import java.util.ArrayList;
    import java.util.List;
    
    /**
     * 257. 二叉树的所有路径
     * 给你一个二叉树的根节点 root ,按 任意顺序 ,返回所有从根节点到叶子节点的路径。
     * <p>
     * 叶子节点 是指没有子节点的节点。
     * <p>
     * <p>
     * 示例 1:
     * <p>
     * <p>
     * 输入:root = [1,2,3,null,5]
     * 输出:["1->2->5","1->3"]
     * 示例 2:
     * <p>
     * 输入:root = [1]
     * 输出:["1"]
     * <p>
     * <p>
     * 提示:
     * <p>
     * 树中节点的数目在范围 [1, 100] 内
     * -100 <= Node.val <= 100
     * 通过次数156,859提交次数228,656
     */
    public class binaryTreePaths {
    
        /**
         * dfs
         * @param root
         * @return
         */
        public static List<String> binaryTreePaths(TreeNode root) {
            List<String> res = new ArrayList<>();
            path(root, "", res);
            return res;
        }
    
        private static void path(TreeNode root, String path, List<String> res) {
    
            if (root == null) {
                return;
            }
    
    
            //这个分支是为了去掉最后一个 ->
            if (root.left == null && root.right == null) {
                String pathTemp = path + root.val;
                res.add(pathTemp);
                return;
            } else {
                String pathTemp = path + root.val + "->";
                path(root.left, pathTemp, res);
                path(root.right, pathTemp, res);
            }
    
    
        }
    
        public static void main(String[] args) {
            Integer[] nums = {1};
            TreeNode treeNode = GenerateTreeNode.generateTreeNode(nums);
            List<String> res = binaryTreePaths(treeNode);
            for (int i = 0; i < res.size(); i++) {
                System.out.println(res.get(i));
            }
        }
    
    }
    
    
  • 相关阅读:
    从习总书记讲话学习表达
    Struts——(四)异常处理机制
    Struts框架——(三)动态ActionForm
    Struts框架——(二)Struts原理with登录实例
    Serializable接口和transient关键字
    转发(forward)和重定向(sendRedirect)
    Struts框架——(一)用Servlet + JSP演示Struts基本原理
    Cookie & Session
    Servlet
    SSH框架
  • 原文地址:https://www.cnblogs.com/xiaoshahai/p/15700867.html
Copyright © 2011-2022 走看看