關于鏈式二叉樹的幾道OJ題目

今天筆者帶領讀者做幾道鏈式二叉樹OJ題目,希望讀者和筆者一起思考!

1.965. 單值二叉樹 - 力扣(LeetCode)

這道題思路不難想,首先知道單值二叉樹的定義:所有結點的值都相同,傳入的是第一個根節點root,然后考慮幾種情況,如果是NULL,那么這是一顆空樹,也 滿足單值二叉樹的要求,所以這種情況直接 返回true,然后考慮整個二叉樹,二叉樹有左子樹,右子樹,所以直接比較二叉樹一個結點的左右孩子結點即可,如果不等,那就返回false,如果相等,那就繼續往下比,下面展示一下筆者寫的代碼:

2.100. 相同的樹 - 力扣(LeetCode)

其實這道題目思路不難想到,無非就是先說特殊情況,然后進行一些遞歸操作即可:

3.101. 對稱二叉樹 - 力扣(LeetCode)

還是老規矩,先判斷為空,之后為了方便,我們封裝一個輔助函數,然后返回的情況其實就很顯然了:

4.144. 二叉樹的前序遍歷 - 力扣(LeetCode)

由于前序中序后序遍歷并無太大 差別,故筆者著重詳解一下前序遍歷,中序后序留給讀者自行練習。這道題首先需要先理解題意,其實意思就是讓我們用一個數組存儲這個二叉樹按照前序遍歷的順序訪問的結點,所以觀察需要完成的函數,我們需要提供一個returnsize,這其實是由于leetcode的原因,傳數組時必須把數組的大小也傳進去,也叫輸出型參數,綜上所述,我們需要單獨求出數組的大小,而這這個數組的求法顯然需要用malloc函數,創建完數組之后就需要考慮進行前序遍歷,下面先給讀者看一下筆者的代碼:

筆者首先求了一個TreeSize,這是因為后面申請內存的時候不會造成浪費,這里需要記住的是returnSize是一個 指針,需要解引用才能當作數組,然后一個很易錯的點就是i,相信讀者會有 一個問題,為什么i要傳入一個指針呢?為什么不能直接傳入i呢?其實這個問題在之前的文章中筆者提到過,遞歸實際上是棧幀問題,通俗理解就是每個副本都會有一個新的i,那些不用的副本中的i始終從1開始,這就會導致混亂,因此需要傳入指針,可以理解為傳入指針會讓根本改變,因為地址找到的東西是固定的,相信到這讀者都能理解筆者這么寫的原因了。

5.94. 二叉樹的中序遍歷 - 力扣(LeetCode)

6.145. 二叉樹的后序遍歷 - 力扣(LeetCode)

7.572. 另一棵樹的子樹 - 力扣(LeetCode)

以筆者的習慣,還是先看題目給的函數,傳入了兩個指針。先判斷第一種情況,二者是不是一棵樹,如果是一棵樹的話那么直接返回true即可,然后就是root為空結點的情況,空結點直接返回false即可,因為空樹不可能有子樹,然后就是很正常的遞歸操作了,和之前同理,即可,下面給讀者看一下筆者的代碼:

8.二叉樹遍歷_牛客題霸_牛客網

ok,這就是本文的最后一道題,這道題比較綜合,不難理解,這道題的本質是先按照前序創一個二叉樹,然后中序遍歷,把遍歷結果儲存起來,其實這道題就是把之前講過的東西結合在了一起,讀者自行完成。

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

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

相關文章

【ECharts】2. ECharts 性能優化

動態(按需)加載異步子組件 之前說過 ECharts 如何封裝,今天來講一講 ECharts 如何做性能優化。 對于之前 ECharts 的封裝子組件,我們可以使用 component 動態組件的方式進行渲染,并傳參。 并且使用 import 動態導入搭配 defineAsyncCompon…

如何創建自己的 Minecraft 世界

步驟1:準備虛擬服務器運行以下命令來更新系統的軟件包列表并應用所有待處理的升級:sudo apt update sudo apt upgrade -y您的系統已更新完畢,您已準備好進行下一步。第 2 步:安裝依賴項并創建安全用戶LinuxGSM 需要一些軟件才能正…

vue中監聽頁面滾動位置

vue中監聽頁面滾動位置問題描述實現代碼1. 獲取頁面被卷起的高度2. 監聽滾動事件問題描述 頁面滾動到指定位置時,展示側邊欄導航。 實現代碼 1. 獲取頁面被卷起的高度 使用 e.target.scrollTop可以獲取到頁面向上滾動了多少像素,代碼如下:…

docker:compose

docker三劍客:compose、swarm、machinemachine是在不同環境(不同的操作系統平臺上安裝)下部署docker的compose是做容器編排的swarm是做docker集群管理的Compose 簡介口任務( task ) : 一個容器被稱為一個任…

GaussDB 數據庫架構師修煉(十八) SQL引擎-計劃管理-SQL PATCH

1 業務背景GaussDB的優化器生成計劃不優的情況下,對DBA調優過程中不對業務sql修改場景下,提供3種計劃管理,分別為plan hint,sql patch,spm。2 sql patch的使用場景在發現查詢語句的執行計劃、執行方式未達預期的場景下,可以通過創…

函數式編程從入門到精通

1.概述1.1為什么學&#xff1f;* 能夠看懂公司里的代碼 * 大數量下處理集合效率高 * 代碼可讀性高 * 消滅嵌套地獄//查詢未成年作家評分在70分以上的書籍&#xff0c;由于流的影響所以作家和書籍可能會重復出現&#xff0c;所以要去重public void test1() {List<Book> bo…

Overleaf 中文報錯和中文不顯示問題的解決方案

Overleaf是一個很方便的在線latex編輯工具。但在最初使用Overleaf的時候&#xff0c;是不是有很多小伙伴會遇到模板中中文報錯或者中文不顯示的問題呢&#xff1f; 本文將帶你一步步解決這個問題~ 中文報錯 在點擊重新編譯按鈕后&#xff0c;中文報錯問題一般會有如下圖紅框顯示…

前后端聯調場景以及可能會遇到的問題

一、異地和在一起辦公的方式 首先&#xff0c;在一起辦公&#xff08;同局域網&#xff09;的情況&#xff0c;最常用的應該是直接使用后端的局域網 IP 進行聯調&#xff0c;因為同一網絡內設備可以直接通信。步驟方面&#xff0c;需要后端提供 IP 和端口&#xff0c;前端配置…

【T113自制板卡】1 - 原理圖說明

文章目錄1、前言2、板卡資源總覽3、電源3.1、板卡供電3.2、電源方案4、OTG接口5、調試串口6、用戶LED7、FLASH8、按鍵9、BLE MESH10、Wi-Fi11、MIC12、喇叭接口13、MIPI接口1、前言 這幾天跟著小智學長的課程畫了一塊t113的板子。本文將描述該板卡的硬件說明。 2、板卡資源總…

WiFi有網絡但是電腦連不上網是怎么回事?該怎么解決?

有時候&#xff0c;咱們用電腦上網&#xff0c;打開WiFi一看&#xff0c;信號滿格&#xff0c;狀態欄顯示已連接&#xff0c;本來想著可以愉快地看個番、查個資料、玩個游戲了&#xff0c;結果一打開瀏覽器&#xff0c;直接完犢子了&#xff0c;網頁都打不開。這時候再看狀態&a…

【golang】制作linux環境+golang的Dockerfile | 如何下載golang鏡像源

一、關于如何下載docker images 這里需要大家自行科學上網如果沒有話&#xff0c;下面可以使用我自行打包的golang 的docker images 注意科學上網要開啟TUN模式二、golang鏡像源 1、阿里云公開鏡像 如果找不到golang包的小伙伴可以使用我的公開阿里鏡像docker pull registry.cn…

Day58 Java面向對象13 instanceof 和 類型轉換

Day58 Java面向對象13 instanceof 和 類型轉換 1.instanceof關鍵字 instanceof關鍵字的作用是判斷一個對象是否是某個類或其子類的實例,它返回一個布爾值true/false dog1 instanceof Dog; //返回true dog1 instanceof Animals; //返回true dog1 instanceof Object; //返回…

GEO優化案例:如何通過“知識圖譜+權威信號”提升品牌AI信任度

引言&#xff1a; “在AI日益成為用戶信息入口的今天&#xff0c;品牌信息能否被AI賦予‘權威’標簽&#xff0c;直接決定了其在搜索結果中的可見度和用戶采信度。移山科技正是這方面的專家。” 一、行業趨勢概覽&#xff1a;AI時代的品牌信任與GEO的價值 2025年&#xff0c…

讓數據可視化更簡單:Embedding Atlas使用指南

Embedding Atlas&#xff1a;交互式的嵌入可視化工具 在大數據時代&#xff0c;如何有效地理解和利用高維數據變得愈發重要。Embedding Atlas 是一款致力于提供大型嵌入&#xff08;embeddings&#xff09;交互式可視化的工具&#xff0c;允許用戶對嵌入數據進行可視化、交叉過…

復雜場景魯棒性突破!陌訊自適應融合算法在廠區越界檢測的實戰優化?

一、行業痛點&#xff1a;越界檢測的復雜場景挑戰 工業廠區周界安防中&#xff0c;越界檢測極易受環境干擾。據《2024工業智能安防白皮書》統計&#xff08;注1&#xff09;&#xff0c;強逆光、雨霧天氣導致傳統算法誤報率超35%&#xff0c;而密集設備遮擋造成的漏檢率高達28…

Huggingface入門實踐 Audio-NLP 語音-文字模型調用(一)

吳恩達LLM-Huggingface_嗶哩嗶哩_bilibili 目錄 0. huggingface 根據需求尋找開源模型 1. Whisper模型 語音識別任務 2. blenderbot 聊天機器人 3. 文本翻譯模型translator 4. BART 模型摘要器&#xff08;summarizer&#xff09; 5. sentence-transformers 句子相似度 …

Python-Pandas GroupBy 進階與透視表學習

??一、數據分組&#xff08;GroupBy&#xff09;????核心概念??&#xff1a;將數據按指定字段分組&#xff0c;對每組進行聚合、轉換或過濾操作。??1. 分組聚合&#xff08;Aggregation&#xff09;??將分組數據聚合成單個值&#xff08;如平均值、總和&#xff09…

MQTT 核心概念與協議演進全景解讀(二)

MQTT 在物聯網中的應用實例智能家居中的設備聯動在智能家居系統里&#xff0c;MQTT 協議扮演著至關重要的角色&#xff0c;是實現設備間高效通信與智能聯動的核心樞紐。以常見的智能家居場景為例&#xff0c;當清晨的陽光緩緩升起&#xff0c;光線傳感器檢測到光照強度的變化&a…

燧原科技招大模型訓練算法工程師

高級大模型訓練算法工程師&#xff08;崗位信息已經經過jobleap.cn授權&#xff0c;可在csdn發布&#xff09;燧原科技 上海職位描述負責大模型在AI芯片預訓練和微調等研發和客戶支持工作&#xff1b; 參與大模型訓練精度分析和性能調優&#xff1b;職位要求985/211大學計算機…

基于Java虛擬線程的高并發作業執行框架設計與性能優化實踐指南

基于Java虛擬線程的高并發作業執行框架設計與性能優化實踐指南 一、技術背景與應用場景 在分布式系統和微服務架構中&#xff0c;后端常需承載海量異步作業&#xff08;如批量數據處理、定時任務、異步消息消費等&#xff09;&#xff0c;對作業執行框架提出了高并發、高吞吐、…