Lc113_路径总和 II
  TEZNKK3IfmPf 2023年11月14日 22 0
package com.example.demo;

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;

/**
 * 113. 路径总和 II
 * 给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。
 * <p>
 * 说明: 叶子节点是指没有子节点的节点。
 * <p>
 * 示例:
 * 给定如下二叉树,以及目标和 sum = 22,
 * <p>
 * 5
 * / \
 * 4   8
 * /   / \
 * 11  13  4
 * /  \    / \
 * 7    2  5   1
 * 返回:
 * <p>
 * [
 * [5,4,11,2],
 * [5,8,4,5]
 * ]
 */
public class Lc113 {

      //将路径记录成字符串,在进行格式转换,可以考虑深拷贝
    public static List<List<Integer>> pathSum(TreeNode root, int sum) {
        LinkedList<String> linkedList = new LinkedList<>();
        calc(root, 0, "", linkedList, sum);
        linkedList.forEach(n->{
            System.out.println(n);
        });
        List<List<Integer>> lists = new ArrayList<>();
        linkedList.forEach(n->{
            String[] temp = n.split(",");
            List<Integer> temps =new ArrayList<>();
            for (int i = 0; i < temp.length; i++) {
                temps.add(Integer.valueOf(temp[i]));
            }
            lists.add(temps);
        });

        return lists;
    }

    public static void calc(TreeNode root, int res, String path, LinkedList<String> paths, int sum) {
        if (root != null) {
            path += root.val;
            res += root.val;
            if (root.left == null && root.right == null && res == sum) {
//                System.out.println(path);
//                System.out.println(res);
                paths.add(path);
            } else {
                path += ",";
                calc(root.left, res, path, paths, sum);
                calc(root.right, res, path, paths, sum);
            }
        }
    }

    public static void main(String[] args) {

        Integer[] arr = new Integer[]{1, 2, 3, 4, 5, 6, 7};
        TreeNode root = CreateNode.createTree(arr).get(0);
        pathSum(root, 7).forEach(n->{
           n.forEach(m->{
               System.out.println(m);
           });
        });
    }

}

 
 
 
 
 
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

上一篇: jvm(1) 下一篇: jvm(7)
  1. 分享:
最后一次编辑于 2023年11月14日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   2023年11月14日   24   0   0 算法Lc
  TEZNKK3IfmPf   2023年11月14日   75   0   0 Lc
  TEZNKK3IfmPf   2023年11月14日   31   0   0 路径
  TEZNKK3IfmPf   2023年11月14日   71   0   0 C++路径
  TEZNKK3IfmPf   2023年11月14日   76   0   0 Lc
  TEZNKK3IfmPf   2023年11月14日   23   0   0 Lc路径
  TEZNKK3IfmPf   2023年11月14日   70   0   0 Lc
  TEZNKK3IfmPf   2024年03月29日   40   0   0 indexwindows路径
TEZNKK3IfmPf