日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Path Sum I, II

發(fā)布時(shí)間:2025/3/15 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Path Sum I, II 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

簡單題

I

Given a binary tree and a sum, determine if the tree has a root-to-leaf path such that adding up all the values along the path equals the given sum.

For example:
Given the below binary tree and?sum = 22,

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

return true, as there exist a root-to-leaf path?5->4->11->2?which sum is 22.

public class Solution {public boolean hasPathSum(TreeNode root, int sum) {if(root==null) return false;if(root.val==sum && root.left==null && root.right==null) return true;return (hasPathSum(root.left, sum-root.val) || hasPathSum(root.right, sum-root.val));} }

II

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

For 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] ]

典型dfs題目 public class Solution {public ArrayList<ArrayList<Integer>> pathSum(TreeNode root, int sum) {ArrayList<ArrayList<Integer>> res = new ArrayList<ArrayList<Integer>>();ArrayList<Integer> cl = new ArrayList<Integer>();dfs(res, cl, root, sum);return res; }private void dfs(ArrayList<ArrayList<Integer>> res, ArrayList<Integer> cl,TreeNode n, int s ){if(n==null) return;cl.add(n.val);if(n.left==null && n.right==null && n.val==s){res.add(new ArrayList<Integer>(cl)); // if dont rebuild, will make conflict with the last line of cl.remove 哦!}else{if(n.left!=null)dfs(res, cl, n.left,s-n.val);if(n.right!=null)dfs(res, cl, n.right,s-n.val);}cl.remove(cl.size()-1);} }

?

轉(zhuǎn)載于:https://www.cnblogs.com/jiajiaxingxing/p/4565053.html

總結(jié)

以上是生活随笔為你收集整理的Path Sum I, II的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。