leetcode-18- [669]修剪二叉搜索樹[108]將有序數組轉換為二叉搜索樹[538]把二叉搜索樹轉換為累加樹

重點:一般二叉樹多考慮遍歷順序,

二叉搜索樹多考慮特性,不用考慮遍歷順序。

一、[108]將有序數組轉換為二叉搜索樹

左閉右開

偶數取左邊

class Solution {public TreeNode sortedArrayToBST(int[] nums) {return traversal(nums,0, nums.length);}//[left,right)public TreeNode traversal(int[] nums, int left, int right) {if (left >= right) {return null;}if (right - left == 1) {return new TreeNode(nums[left]);}int mid = left + (right - left) / 2;TreeNode root = new TreeNode(nums[mid]);root.left = traversal(nums, left, mid);root.right = traversal(nums, mid + 1, right);return root;}
}

二、[538]把二叉搜索樹轉換為累加樹

雙指針

class Solution {int pre=0;public TreeNode convertBST(TreeNode root) {traversal(root);return root;}// 按右中左順序遍歷,累加即可void traversal(TreeNode cur) {if (cur == null) {return;}traversal(cur.right);cur.val = pre+ cur.val;pre= cur.val;traversal(cur.left);}
}

三、[669]修剪二叉搜索樹

一般先考慮抽出一個子樹,即左根右三個節點,之后根據條件,看往左子樹還是右子樹

方向前進,或者結束遞歸返回。

class Solution {public TreeNode trimBST(TreeNode root, int low, int high) {if (root == null) {return null;}if (root.val < low) {return trimBST(root.right, low, high);}if (root.val > high) {return trimBST(root.left, low, high);}// root在[low,high]范圍內root.left = trimBST(root.left, low, high);root.right = trimBST(root.right, low, high);return root;}
}

?

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

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

相關文章

ArcGIS定義1.5度帶坐標系與投影轉換

? 點擊下方全系列課程學習 點擊學習—>ArcGIS全系列實戰視頻教程——9個單一課程組合系列直播回放 點擊學習——>遙感影像綜合處理4大遙感軟件ArcGISENVIErdaseCognition 對于ArcGIS如何定義高斯克呂格3度帶、6度帶&#xff0c;我相信大部分人都是比較清楚的&#xff0…

OAuth 2.0資源授權機制與安全風險分析

文章目錄 前言OAuth2.01.1 OAuth應用1.2 OAuth基礎1.3 授權碼模式1.4 其它類模式1.5 openid連接 安全風險2.1 隱式授權劫持2.2 CSRF攻擊風險2.3 Url重定向漏洞2.4 scope校驗缺陷 總結 前言 OAuth 全稱為Open Authorization&#xff08;開放授權&#xff09;&#xff0c;OAuth …

為什么不推薦使用 UUID 作為主鍵

UUID 作為主鍵的討論背景 面試官提出問題時&#xff0c;應提供具體場景&#xff0c;例如 UUID 是由日志服務器還是客戶端生成。 UUID 的優點 獨立生成&#xff1a;可以在任何地方生成&#xff0c;無需與數據庫服務器往返。簡化邏輯&#xff1a;預先生成父表主鍵值&#xff0…

使用API有效率地管理Dynadot域名,為文件夾中的域名進行域名停放

關于Dynadot Dynadot是通過ICANN認證的域名注冊商&#xff0c;自2002年成立以來&#xff0c;服務于全球108個國家和地區的客戶&#xff0c;為數以萬計的客戶提供簡潔&#xff0c;優惠&#xff0c;安全的域名注冊以及管理服務。 Dynadot平臺操作教程索引&#xff08;包括域名郵…

“RLC串聯正弦穩態電路的仿真研究”課程設計,高分資源,匠心制作,下載可用。強烈推薦!!!

1.設計目的 用 Multisim 電路仿真軟件&#xff0c;對一個 RLC 串聯電路進行正弦穩態電路分析。 2任務分析 2.1任務要求1 在 Multisim 中搭建一個 RLC 串聯電路&#xff0c;其中 R、 L、 C、正弦激勵源的振幅Vp和頻率 f 等所有參數均可自己任意設置&#xff08;不建議都采用…

RT-Thread Studio實現靜態線程

1創建項目 &#xff08;STM32F03ZET6&#xff09; RT-Thread項目與RT-Thread Nano 項目區別 RT-Thread: 完整版&#xff1a;這是RT-Thread的完整形態&#xff0c;適用于資源較豐富的物聯網設備。功能&#xff1a;它提供了全面的中間件組件&#xff0c;如文件系統、網絡協議棧、…

[創業之路-130] :制造業企業的必備管理神器-ERP-基礎數據庫-物料類型與物料編碼

目錄 前言&#xff1a; 一、什么是物料 1、物料的定義 2、物料的分類 3、物料的性質 4. 輔助物料要放到產品的BOM中嗎&#xff1f; 二、ERP物料類型 三、ERP物料編碼 3.1 概述 3.2 示例 示例一&#xff1a;某企業冰箱材料分類與編碼 示例二&#xff1a;某機械加工廠…

行業案例 | 智能終端設備的數據基礎從哪兒來?

智能終端的快速發展讓我們在許多科幻電影中看到的“未來場景”正在一步步變為現實&#xff1a;智能家居正在解放我們的雙手&#xff0c;工業機器人讓生產效率倍增&#xff0c;智能穿戴設備讓我們便利地感知自身與外部的連結……然而&#xff0c;要想讓萬物“智聯”&#xff0c;…

主流數據同步工具對比詳解

文章目錄 概述1. Flink CDC (Apache Flink Change Data Capture)2. Debezium3. DataX4. Canal5. Sqoop6. Kettle (Pentaho Data Integration)7. Oracle GoldenGate概述 數據同步工具是企業數據開發常用的中間件,如何從眾多工具中正確選型是個問題,本文詳細介紹了主流工具的優…

從環型到樹型:多種網絡拓撲結構的優缺點及應用

網絡拓撲作為網絡設計的基礎&#xff0c;對于網絡的性能、可靠性和擴展性起著重要作用。作為網絡通信工程師&#xff0c;我們不僅需要了解網絡拓撲的基本概念&#xff0c;還需深入掌握其在實際網絡設計中的應用。本文將詳細介紹網絡拓撲&#xff0c;包括物理拓撲、邏輯拓撲&…

足底筋膜炎最快治療方法有哪些

足底筋膜炎的治療方式多樣&#xff0c;因病而異&#xff0c;因人而異。為了快速有效地治療足底筋膜炎&#xff0c;以下是一些建議的治療方案&#xff1a; 1、物理治療&#xff1a; 針灸、按摩、理療、熱敷等方式可以緩解局部炎癥。這些物理治療方法有助于促進血液循環&#xff…

windows下以服務方式安裝prometheus和grafana

grafana 找到confi下的defaults.ini&#xff0c;找到http_port修改端口號 # The HTTP port to use http_port 3000啟動 grafana-server.exe訪問localhost:8601即可 下載winsw https://github.com/winsw/winsw 新建grafanaservice.xml <service><id>grafana&…

Strava VS Keep競品分析

Strava VS Keep競品分析 一、背景&#xff1a; 隨著國民對身體健康的重視程度逐步增加&#xff0c;跑步、游泳、騎行在國內逐漸流行&#xff0c;人們都加入運動行列。隨之不可缺少的則是對運動數據的記錄&#xff0c;市面上針對此需求的app層出不窮&#xff0c;日活最多的5款…

用友BIP電子憑證3.0,助力企業實現結算自動化

電子憑證作為現代企業運營的核心數字憑據&#xff0c;其重要性不言而喻。它不僅是企業在社會經濟活動中運動軌跡的記錄&#xff0c;更是企業業務、財務、稅務等關鍵數據信息的載體。特別是在企業與上下游企業之間的業務往來中&#xff0c;電子憑證所承載的訂單數據、物流數據、…

智慧金融新視野:銀行數據中心可視化大屏的崛起

在數字化浪潮的推動下&#xff0c;銀行業正迎來一場前所未有的變革。在這場變革中&#xff0c;銀行數據中心可視化大屏以其獨特的魅力&#xff0c;為銀行的數據分析和決策提供強有力的支持。 隨著金融科技的不斷發展&#xff0c;銀行對于數據處理和分析的需求日益增長。銀行數據…

寫一個壞越的個人天地(四)

靜態界面已經基本都寫差不多了&#xff0c;今天試下部署看下問題然后就可以準備后端部分了~ 這邊瀏覽了下先準備換下路徑&#xff0c;確保本地素材的導入沒有問題&#xff0c;vue打包這邊有一個問題就是在打包的時候你的素材沒有在標簽里直接用src導入&#xff0c;而是在掛載的…

紅酒舞動,運動風采,品味力與美

當夜幕降臨&#xff0c;城市的燈火漸次亮起&#xff0c;忙碌了一天的人們開始尋找那份屬于自己的寧靜與愉悅。在這個時刻&#xff0c;紅酒與運動&#xff0c;這兩個看似截然不同的元素&#xff0c;卻能以它們不同的魅力&#xff0c;為我們帶來一場視覺與感官的盛宴。 紅酒&…

如何學習訓練大模型——100條建議(附詳細說明)

摘要&#xff1a; 通過深入了解本文中的這些細節&#xff0c;并在實際項目中應用相關知識&#xff0c;將能夠更好地理解和利用大模型的潛力&#xff0c;不僅在學術研究中&#xff0c;也在工程實踐中。通過不斷探索新方法、參與項目和保持熱情&#xff0c;并將其應用于各種領域&…

探究電子電路中的電壓與電平轉換

1. 引言 昨天跟好朋友討論一個項目的時候,我朋友就給我畫了一個簡化版的電路圖&#xff0c;如下圖所示&#xff1a; 總覺得這個電路怪怪的&#xff0c;clk信號怎么直接接穩壓電路呢。就產生了一個疑問&#xff0c;電平轉換和電壓轉換的區別是啥&#xff1f;穩壓電路還有升降壓…

【小白學Python】AI生成圖片(四)

【小白學Python】自定義圖片的生成&#xff08;一&#xff09; 【小白學Python】自定義圖片的生成&#xff08;二&#xff09; 【小白學Python】爬取數據&#xff08;三&#xff09; 目錄 ai文生圖接口的獲取python中調用ai接口圖片拼接先將圖片縮放拼接圖片 文字背景圖代碼效…