二叉樹路徑總和

一、給你二叉樹的根節點?root?和一個表示目標和的整數?targetSum?。判斷該樹中是否存在根節點到葉子節點的路徑,這條路徑上所有節點值相加等于目標和?targetSum?。如果存在,返回?true?;否則,返回?false?。

112. 路徑總和 - 力扣(LeetCode)

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
class Solution {public boolean traversal(TreeNode root,int sum){if(root.left==null&&root.right==null&&sum==0)return true;if(root.left==null&&root.right==null&&sum!=0)return false;if(root.left!=null){sum-=root.left.val;if(traversal(root.left,sum))return true;sum+=root.left.val;//回溯}if(root.right!=null){sum-=root.right.val;if(traversal(root.right,sum))return true;sum+=root.right.val;}return false;}public boolean hasPathSum(TreeNode root, int targetSum) {if(root==null)return false;return traversal(root,targetSum-root.val);}
}

二、給你二叉樹的根節點?root?和一個整數目標和?targetSum?,找出所有從根節點到葉子節點路徑總和等于給定目標和的路徑。

113. 路徑總和 II - 力扣(LeetCode)

class Solution {public List<List<Integer>> pathSum(TreeNode root, int targetSum) {List<List<Integer>> res=new ArrayList<>();if(root==null)return res;List<Integer> path=new LinkedList<>();traversal(root,targetSum,res,path);return res;}public void traversal(TreeNode root, int targetSum,List<List<Integer>> res,List<Integer> path){path.add(root.val);if(root.left==null&&root.right==null&&targetSum-root.val==0)res.add(new ArrayList<>(path));if (root.left!=null) {traversal(root.left,targetSum-root.val,res,path);path.remove(path.size()-1); // 回溯}if (root.right!=null) {traversal(root.right,targetSum-root.val,res,path);path.remove(path.size()-1);}}
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/905139.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/905139.shtml
英文地址,請注明出處:http://en.pswp.cn/news/905139.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Matlab 模糊控制平行側邊自動泊車

1、內容簡介 Matlab 233-模糊控制平行側邊自動泊車 可以交流、咨詢、答疑 2、內容說明 略 3、仿真分析 略 4、參考論文 略

M0G3507完美移植江科大軟件IIC MPU6050

經過兩天兩夜的查閱文獻資料、整理學習&#xff0c;成功的把江科大的軟件IIC讀寫MPU6050移植到MSPM0G3507&#xff0c;親測有效&#xff01;&#xff01;包的&#xff0c;為了讓大家直觀地感受下&#xff0c;先上圖。記得點個贊哦&#xff01; 學過江科大的STM32的小伙伴是不是…

CI/CD與DevOps流程流程簡述(提供思路)

一 CI/CD流程詳解&#xff1a;代碼集成、測試與發布部署 引言 在軟件開發的世界里&#xff0c;CI/CD&#xff08;持續集成/持續交付&#xff09;就像是一套精密的流水線&#xff0c;確保代碼從開發到上線的整個過程高效、穩定。我作為一名資深的軟件工程師&#xff0c;接下來…

大數據基礎——Ubuntu 安裝

文章目錄 Ubuntu 安裝一、配置電腦二、安裝系統 Ubuntu 安裝 一、配置電腦 1、進入VMware 2、選擇配置類型 3、選擇硬件兼容性版本 4、當前虛擬機的操作系統 選擇“稍后安裝操作系統”&#xff08;修改&#xff09; 5、選擇虛擬機將來需要安裝的系統 選中“Linux”和選擇…

LeetCode百題刷003(449周賽一二題)

遇到的問題都有解決的方案&#xff0c;希望我的博客可以為你提供一些幫助 一、不同字符數量最多為 K 時的最少刪除數 &#xff08;哈希表空間換時間&#xff09; 不同字符數量最多為 K 時的最少刪除數 - 力扣 (LeetCode) 競賽https://leetcode.cn/contest/weekly-contest-449/…

【網安等保】OpenEuler 24.03系統主機安全加固及配置優化實踐指南

[ 知識是人生的燈塔&#xff0c;只有不斷學習&#xff0c;才能照亮前行的道路 ] &#x1f4e2; 大家好&#xff0c;我是 WeiyiGeek&#xff0c;一個正在向全棧工程師(SecDevOps)前進的計算機技術愛好者&#xff0c;歡迎各位道友一起學習交流、一起進步 &#x1f680;&#xff0…

大模型賦能:2D 寫實數字人開啟實時交互新時代

在數字化浪潮席卷全球的當下&#xff0c;人工智能技術不斷突破創新&#xff0c;其中大模型驅動的 2D 寫實數字人正成為實時交互領域的一顆新星&#xff0c;引領著行業變革&#xff0c;為人們帶來前所未有的交互體驗。 一、2D 寫實數字人概述 2D 寫實數字人是通過計算機圖形學…

Dockers部署oscarfonts/geoserver鏡像的Geoserver

Dockers部署oscarfonts/geoserver鏡像的Geoserver 說實話&#xff0c;最后發現要選擇合適的Geoserver鏡像才是關鍵&#xff0c;所以所以所以…&#x1f437; 推薦oscarfonts/geoserver的鏡像&#xff01; 一開始用kartoza/geoserver鏡像一直提示內存不足&#xff0c;不過還好…

關于解決MySQL的常見問題

一&#xff1a;MySQL輸入密碼時閃退 這有可能是因為MySQL服務沒有開啟。 打開系統配置&#xff08;直接搜索即可&#xff09;&#xff0c;查看MySQL服務是否開啟。 此時顯示的是已停止。確定是這個問題。 現在打開計算機管理&#xff08;直接搜索即可&#xff09;。 找到MyS…

LeetCode 熱題 100 101. 對稱二叉樹

LeetCode 熱題 100 | 101. 對稱二叉樹 大家好&#xff0c;今天我們來解決一道經典的二叉樹問題——對稱二叉樹。這道題在 LeetCode 上被標記為簡單難度&#xff0c;要求檢查給定的二叉樹是否軸對稱。 問題描述 給你一個二叉樹的根節點 root&#xff0c;檢查它是否軸對稱。 示…

圖形化編程革命:iVX攜手AI 原生開發范式

一、技術核心&#xff1a;圖形化編程的底層架構解析 1. 圖形化開發的效率優勢&#xff1a;代碼量減少 72% 的秘密 傳統文本編程存在顯著的信息密度瓶頸。以 "按鈕點擊→條件判斷→調用接口→彈窗反饋" 流程為例&#xff0c;Python 實現需定義函數、處理縮進并編寫 …

uniapp跨平臺開發HarmonyOS NEXT應用初體驗

之前寫過使用uniapp開發鴻蒙應用的教程&#xff0c;簡單介紹了如何配置開發環境和運行項目。那時候的HbuilderX還是4.22版本&#xff0c;小一年過去了HbuilderX的正式版本已經來到4.64&#xff0c;歷經了多個版本的更新后&#xff0c;跨平臺開發鴻蒙應用的體驗大幅提升。今天再…

windows怎么修改DNS

好的&#xff0c;在 Windows 操作系統中修改 DNS 設置有幾種方法&#xff0c;最常用的是通過“網絡和 Internet 設置”。以下是詳細步驟&#xff1a; 方法一&#xff1a;通過設置應用修改 DNS (適用于 Windows 10/11) 打開設置&#xff1a; 點擊屏幕左下角的 Windows 開始按鈕…

Java基本數據類型緩存池解析-源碼剖析

拋出問題&#xff1a;new Integer(18) 與 Integer.valueOf(18) 的區別是什么&#xff1f; new Integer(18) 每次都會新建一個對象;Integer.valueOf(18) 會使?用緩存池中的對象&#xff0c;多次調用只會取同?一個對象的引用 Integer x new Integer(18); Integer y new Int…

WORD壓縮兩個免費方法

日常辦公和學習中&#xff0c;Word文檔常常因為包含大量圖片、圖表或復雜格式而導致文件體積過大&#xff0c;帶來諸多不便&#xff0c;比如 郵件發送受限&#xff1a;許多郵箱附件限制在10-25MB&#xff0c;大文件無法直接發送 存儲空間占用&#xff1a;大量文檔占用硬盤或云…

羅技無線鼠標的配對方法

羅技鼠標的配對方法&#xff1a; 重新連接鼠標 請按照以下步驟將鼠標與 USB 接收器重新配對。 1.將USB接收器插入計算機。 2.將鼠標關閉電源。 3.按住并持續按住向右按鈕&#xff0c;直到操作結束。 4.切換鼠標電源。 5. 單擊一次左側按鈕。 6. 單擊一次中間按鈕。 7.全部松開&…

四、Hadoop 2.X vs 3.X:特性、架構與性能全解析

Hadoop 2.X 與 Hadoop 3.X 深度對比&#xff1a;版本特性、架構與性能剖析 在大數據處理的浪潮中&#xff0c;Hadoop 憑借其分布式存儲與計算的強大能力&#xff0c;成為了業界的核心框架之一。隨著技術的不斷演進&#xff0c;Hadoop 也經歷了多個重要版本的迭代。其中&#x…

【React中useReducer鉤子詳解】

useReducer 是 React 中用于管理復雜狀態邏輯的 Hook&#xff0c;它通過 集中式狀態更新邏輯 替代 useState&#xff0c;尤其適合處理多值關聯狀態或依賴前序狀態更新的場景。以下是其核心要點&#xff1a; 1. 核心概念 Reducer 模式&#xff1a;靈感來自 JavaScript 的 Array…

【C++】C++函數指針詳解與實用技巧

C函數指針詳解與實用技巧 在C中&#xff0c;**函數指針&#xff08;Function Pointer&#xff09;**是一種強大而靈活的工具&#xff0c;常用于回調機制、策略模式、事件處理等場景。本文將從概念、語法、常見用法到實戰示例&#xff0c;帶你全面掌握C函數指針。 &#x1f9e0…

【計算機視覺】基于深度學習的實時情緒檢測系統:emotion-detection項目深度解析

基于深度學習的實時情緒檢測系統&#xff1a;emotion-detection項目深度解析 1. 項目概述2. 技術原理與模型架構2.1 核心算法1) 數據預處理流程2) 改進型MobileNetV2 2.2 系統架構 3. 實戰部署指南3.1 環境配置3.2 數據集準備3.3 模型訓練3.4 實時推理 4. 常見問題與解決方案4.…