8/18二叉樹的總結

二叉樹的遍歷方式:

遞歸前中后序144,145,94

二叉樹:前中后序遞歸法?(opens new window)

迭代法通過隊列模擬102

求二叉樹的屬性

101是否對稱,左數的外側和右數的外側比較,左樹的內側和右樹的內側比較

104最大深度,DFS比較左數的最大深度和右樹的最大深度,二者取較大者

111二叉樹最小深度,后序遍歷,處理節點

222二叉樹節點個數,這道題跟104一樣做法

110.平衡二叉樹, 判斷左右子樹高度差

404.左葉子之和,必須三層約束條件,才能判斷是否是左葉子。

257.二叉樹所有路徑,遞歸+回溯,或者純遞歸,

513.找樹左下角的值,用層序遍歷

112路徑總和

二叉樹的修改與構造

226.翻轉二叉樹

? ? ?* 前后序遍歷都可以但中序不行,因為先左孩子交換孩子,再根交換孩子(做完后,右孩子已經變成了原來的左孩子),再右孩子交換孩子(此時其實是對原來的左孩子做交換)

106.中序與后序遍歷構造二叉樹

如通過中序與后序,首先找到后序數組最后一個數組為分割點,再以此分割點分割中序數組,這樣反復循環

654.構造最大二叉樹

同理106,要遍歷出最大的數字,然后以此為分割點,做區間分割

617.合并二叉樹

以其中一棵為主樹,把另一顆樹的數值加到主樹上去

求二叉搜索樹的屬性

700.二叉搜索樹中的搜索,尋找符合條件的目標節點,利用BST的特性,判斷往左走還是往右走。

98.驗證二叉搜索樹,遞歸中序遍歷,這道題不需要遍歷全樹,需要有一個前節點pre記錄值,將其值和當前節點cur的值進行比較

530.二叉搜索樹的最小絕對差,也是需要一個pre節點,每次計算當前節點root和pre節點的差值

501.二叉搜索樹的眾數,遞歸+中序遍歷,maxCount句記錄最大頻數,如果發現更大頻數,要更新maxCount,同時把新的rootValue添加到結果集中,這道題要注意可能有多個相等的眾數

538.?把二叉搜索樹轉換為累加樹,反中序遍歷,需要一個前節點pre。pre節點可以理解為當前節點root的孩子節點

二叉搜索樹的修改與構造

701.?二叉搜索樹中的插入操作,注意BST的有序性

450.?刪除二叉搜索樹中的節點,當root.val==val的時候,刪除節點分為多個情況,root左子樹不為空,右子樹為空;root右子樹不為空,左子樹為空;root的左右子樹都不為空,把root左子樹嫁接到root右子樹的最底層的最左邊

669.?修剪二叉搜索樹,刪除不在指定區間的節點,dfs前序遍歷,如果root(當前節點)的元素小于low的數值,那么應該遞歸右子樹,并返回右子樹符合條件的頭結點

108.?將有序數組轉換為二叉搜索樹,我們應該找到數組的中點,重點作為root節點,然后 遞歸構建root的左子樹和右子樹

二叉樹公共祖先問題

236.?二叉樹的最近公共祖先,遞歸后序遍歷,1.遞歸當前節點的左子樹和右子樹,2.處理遞歸邏輯,判斷在遞歸過程中是否存在left或者right為null,這個時候說明遞歸到頭了,要return

235.?二叉搜索樹的最近公共祖先,236的代碼可以copy過來,但是為了利用BST的特性,我們優化:將root.val分別于p.val和q.val進行比較,然后根據遞歸結果決定是遞歸左子樹還是右子樹

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

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

相關文章

案例-基于MVC和三層架構實現商品表的增刪改查

文章目錄 0. 項目介紹1. 環境準備2. 查看所有2.1 編寫BrandMapper接口2.2 編寫服務類,創建BrandService,用于調用該方法2.5 編寫Servlet2.4 編寫brand.jsp頁面2.5 測試 3.添加3.1 編寫BrandMapper接口 添加方法3.2 編寫服務3.3 改寫Brand.jsp頁面&#x…

CMake教程6:調用lib、dll

之前我們學到了如何編寫一個可執行程序和Library,在繼續學習之前,需要解釋下target,在cmake中我們可以給executable和library設置一個target名字,這樣可以方便我們在后續對target進行更加詳細的屬性設置。 本節我們將學習如何在項…

利用logstash/filebeat/插件,將graylog日志傳輸到kafka中

1.graylog配置輸出 在System-outputs,選擇GELF Output,填寫如下內容,其它選項默認 在要輸出的Stream中,選擇Manage Outputs 選擇GELF Output,右邊選擇剛才創建好的test。 2.安裝logstash,作為中間臨時…

LeetCode 786. 第 K 個最小的素數分數

&#x1f517; 原題鏈接&#xff1a;786. 第 K 個最小的素數分數 本題可以暴力求解&#xff1a; class Solution { public:vector<int> kthSmallestPrimeFraction(vector<int>& arr, int k) {int n arr.size();vector<pair<int, int>> frac;for …

Vue使用jspdf和html2canvas組件庫結合導出PDF文件

效果圖&#xff1a; 1、安裝依賴&#xff1a; npm install html2canvas --save npm install jspdf --save 或 yarn add html2canvas --save yarn add jspdf --save 2、封裝全局調用方法&#xff1a;this.$exportPDF(#id,文件名) 新建js文件&#xff1a;/utils/html2Pdf.js&am…

在linux中,使用sh文件腳本啟動jar項目

使用方法 sh 執行腳本.sh [start|stop|restart|status]sh文件內容 APP_NAMEXXXX.jar#使用說明&#xff0c;用來提示輸入參數 usage() { echo "Usage: sh 執行腳本.sh [start|stop|restart|status]" exit 1 }#檢查程序是否在運行 is_exist(){ pidps -ef|grep $APP_N…

數據結構:選擇排序

簡單選擇排序 選擇排序是一種簡單直觀的排序算法。首先在未排序序列中找到最大&#xff08;最小&#xff09;的元素&#xff0c;存放到排序學列的其實位置&#xff0c;然后在剩余的未排序的元素中尋找最小&#xff08;最大&#xff09;元素&#xff0c;存放在已排序序列的后面…

高等數學:牛頓迭代發解方程

現在高數也要介紹牛頓法了&#xff0c;一般都是從幾何上直接以“切線法”直接引入的。這種引入方式的確很簡單&#xff0c;但如果脫離深入一點的分析就不大容易解釋后面的事情。所以就在想怎么更直接地從分析的角度來一條線貫穿&#xff0c;把整個過程說一說。 文章目錄 一、牛…

【深度學習】PyTorch快速入門

【深度學習】學習PyTorch基礎 介紹PyTorch 深度學習框架是一種軟件工具&#xff0c;旨在簡化和加速構建、訓練和部署深度學習模型的過程。深度學習框架提供了一系列的函數、類和工具&#xff0c;用于定義、優化和執行各種深度神經網絡模型。這些框架幫助研究人員和開發人員專注…

漏洞+常見漏洞修復建議

一、漏洞級別 高級別漏洞&#xff1a;大部分遠程和本地管理員權限漏洞 中級別漏洞&#xff1a;大部分普通用戶權限、權限提升、讀懂受限文件、遠程和本杜漏洞、拒絕服務漏洞 低級別漏洞&#xff1a;大部分遠程非授權文件存取、口令恢復、欺騙、信息泄露漏洞 二、漏洞掃描的…

Kotlin Lambda和高階函數

Lambda和高階函數 本文鏈接&#xff1a; 文章目錄 Lambda和高階函數 lambda輸出&#xff08;返回類型&#xff09;深入探究泛型 inline原理探究 高階函數集合、泛型自己實現Kotlin內置函數 擴展函數原理companion object 原理 > 靜態內部類函數式編程 lambda 1、lambda的由…

Flink流批一體計算(13):PyFlink Tabel API之SQL DDL

1. TableEnvironment 創建 TableEnvironment from pyflink.table import Environmentsettings, TableEnvironment# create a streaming TableEnvironmentenv_settings Environmentsettings.in_streaming_mode()table_env TableEnvironment.create(env_settings)# or create…

嵌入式Linux開發實操(九):CAN接口開發

前言: CAN網絡在汽車中的使用可以說相當廣泛。而CAN網絡需要的收發器最常用的就是NXP 的TJA1042: CAN網絡:

605. 種花問題

鏈接 假設有一個很長的花壇&#xff0c;一部分地塊種植了花&#xff0c;另一部分卻沒有。可是&#xff0c;花不能種植在相鄰的地塊上&#xff0c;它們會爭奪水源&#xff0c;兩者都會死去。給你一個整數數組 flowerbed 表示花壇&#xff0c;由若干 0 和 1 組成&#xff0c;其中…

8/16總結

WebSocket是雙向通信協議&#xff0c;模擬Socket協議&#xff0c;可以雙向發送或者接收信息 而Http是單向的 WebSocket是需要瀏覽器和服務器握手進行建立連接的 而http是瀏覽器發起向服務器的連接&#xff0c;服務器預先并不知道這個連接 WebSocket在建立握手時&#xff0c;數…

Python3內置函數大全

吐血整理 Python3內置函數大全 1.abs()函數2.all()函數3.any()函數4.ascii()函數5.bin()函數6.bool()函數7.bytes()函數8.challable()函數9.chr()函數10.classmethod()函數11.complex()函數12.complie()函數13.delattr()函數14.dict()函數15.dir()函數16.divmod()函數17.enumer…

注解@JsonInclude

注解JsonInclude 1. 注解由來 JsonInclude是一個用于Java類中字段或方法的注解&#xff0c;它來自于Jackson庫。Jackson庫是一個用于處理JSON數據的流行開源庫&#xff0c;在Java對象和JSON之間進行序列化和反序列化時經常被使用。 2. 注解示例 下面是JsonInclude注解的一個…

【kubernetes】Pod控制器

目錄 Pod控制器及其功用 pod控制器有多種類型 1、ReplicaSet ReplicaSet主要三個組件組成 2、Deployment 3、DaemonSet 4、StatefulSet 5、Job 6、Cronjob Pod與控制器之間的關系 1、Deployment 查看控制器配置 查看歷史版本 2、SatefulSet 為什么要有headless&…

2023-08-18力扣每日一題

鏈接&#xff1a; 1388. 3n 塊披薩 題意&#xff1a; 一個長度3n的環&#xff0c;選n次數字&#xff0c;每次選完以后相鄰的數字會消失&#xff0c;求選取結果最大值 解&#xff1a; 這波是~~&#xff08;ctrl&#xff09;CV工程師了~~ 核心思想是選取n個不相鄰的元素一定…

無涯教程-Perl - splice函數

描述 此函數從LENGTH元素的OFFSET元素中刪除ARRAY元素,如果指定,則用LIST替換刪除的元素。如果省略LENGTH,則從OFFSET開始刪除所有內容。 語法 以下是此函數的簡單語法- splice ARRAY, OFFSET, LENGTH, LISTsplice ARRAY, OFFSET, LENGTHsplice ARRAY, OFFSET返回值 該函數…