zoukankan      html  css  js  c++  java
  • 113. Path Sum II

    Given a binary tree and a sum, find all root-to-leaf paths where each path's sum equals the given sum.

    Note: A leaf is a node with no children.

    Example:

    Given the below binary tree and sum = 22,

          5
         / 
        4   8
       /   / 
      11  13  4
     /      / 
    7    2  5   1
    

    Return:

    [
       [5,4,11,2],
       [5,8,4,5]
    ]

    time: O(n), space: O(height)

    /**
     * Definition for a binary tree node.
     * public class TreeNode {
     *     int val;
     *     TreeNode left;
     *     TreeNode right;
     *     TreeNode(int x) { val = x; }
     * }
     */
    class Solution {
        public List<List<Integer>> pathSum(TreeNode root, int sum) {
            List<List<Integer>> res = new ArrayList<>();
            List<Integer> list = new ArrayList<>();
            pathSum(root, sum, list, res);
            return res;
        }
        
        public void pathSum(TreeNode root, int sum, List<Integer> list, List<List<Integer>> res) {
            if(root == null) {
                return;
            }
            if(root.left == null && root.right == null) {
                if(sum == root.val) {
                    list.add(root.val);
                    res.add(new ArrayList<>(list));
                    list.remove(list.size() - 1);
                }
                return;
            }
            
            list.add(root.val);
            pathSum(root.left, sum - root.val, list, res);
            pathSum(root.right, sum - root.val, list, res);
            list.remove(list.size() - 1);
        }
    }
  • 相关阅读:
    甘草
    html2pdf
    gitlab jenkins 安装笔记
    mac phpbrew安装
    域名解析各项记录对应的值
    网站添加ico图标
    dom控制
    webstrom 代码工具(转http://www.cnblogs.com/tangdanni11/p/5149063.html)
    http协议(转http://www.cnblogs.com/guguli/p/4758937.html)
    预解析机制
  • 原文地址:https://www.cnblogs.com/fatttcat/p/10198743.html
Copyright © 2011-2022 走看看