力扣94. 二叉樹的中序遍歷

94. 二叉樹的中序遍歷

給定一個二叉樹的根節點?root?,返回?它的?中序?遍歷?。

示例 1:

輸入:root = [1,null,2,3]
輸出:[1,3,2]

示例 2:

輸入:root = []
輸出:[]

示例 3:

輸入:root = [1]
輸出:[1]

經典老題:兩種實現思路? 遞歸或棧

1.遞歸? 先一直向左邊找,然后res添加,最后向右找。

class Solution {public List<Integer> inorderTraversal(TreeNode root) {List<Integer> res = new ArrayList<>();inorder(root, res);return res;}void inorder(TreeNode root, List<Integer> res) {if (root == null) {return;}inorder(root.left, res);list.add(root.val);             inorder(root.right, res);}
}

2.棧? while--->左邊,然后res添加,在換到右邊。

/*** 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 List<Integer> inorderTraversal(TreeNode root) {List<Integer> res  = new ArrayList<>();if(root == null){return res;}Stack<TreeNode> st = new Stack<>();TreeNode cur  = root;while(cur!=null||!st.isEmpty()){if(cur!=null){st.push(cur);cur= cur.left;}else{TreeNode node1 = st.pop();res.add(node1.val);cur = node1.right;}}return res;}
}

感謝你看到這里,喜歡的可以點點關注哦!

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

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

相關文章

深度學習:AI為老年癡呆患者點亮希望之光

引言 隨著全球人口老齡化進程的加速&#xff0c;老年癡呆癥已成為嚴重威脅老年人健康和生活質量的公共衛生問題。據世界衛生組織統計&#xff0c;全球每 3 秒鐘就有 1 人被診斷為癡呆&#xff0c;預計到 2050 年&#xff0c;全球癡呆患者人數將從目前的約 5000 萬激增至 1.52 億…

拋物線法(二次插值法)

拋物線法簡介 拋物線法&#xff08;Quadratic Interpolation Method&#xff09;是一種用于一維單峰函數極值搜索的經典優化方法。該方法通過在區間內選取三個不同的點&#xff0c;擬合一條二次拋物線&#xff0c;并求取這條拋物線的極值點作為新的迭代點&#xff0c;從而逐步…

FreeRTOS如何檢測內存泄漏

在嵌入式系統中&#xff0c;內存資源通常非常有限&#xff0c;內存泄漏可能導致系統性能下降甚至崩潰。內存泄漏是指程序分配的內存未被正確釋放&#xff0c;逐漸耗盡可用內存。 FreeRTOS作為一種輕量級實時操作系統&#xff08;RTOS&#xff09;&#xff0c;廣泛應用于資源受限…

Mockoon 使用教程

文章目錄 一、簡介二、模擬接口1、Get2、Post 一、簡介 1、Mockoon 可以快速模擬API&#xff0c;無需遠程部署&#xff0c;無需帳戶&#xff0c;免費&#xff0c;跨平臺且開源&#xff0c;適合離線環境。 2、支持get、post、put、delete等所有格式。 二、模擬接口 1、Get 左…

如何進行APP安全加固

進行APP安全加固的關鍵在于代碼混淆、加密敏感數據、權限管理、漏洞掃描與修復。其中&#xff0c;代碼混淆能有效阻止逆向工程與篡改攻擊&#xff0c;提升應用的安全防護能力。通過混淆代碼&#xff0c;攻擊者難以輕易理解源代碼邏輯&#xff0c;從而降低被破解或攻擊的風險。 …

【C++】手搓一個STL風格的string容器

C string類的解析式高效實現 GitHub地址 有夢想的電信狗 1. 引言&#xff1a;字符串處理的復雜性 ? 在C標準庫中&#xff0c;string類作為最常用的容器之一&#xff0c;其內部實現復雜度遠超表面認知。本文將通過一個簡易仿照STL的string類的完整實現&#xff0c;揭示其設…

辰鰻科技朱越洋:緊扣時代契機,全力投身能源轉型戰略賽道

國家能源局于4月28日出臺的《關于促進能源領域民營經濟發展若干舉措的通知》&#xff08;以下簡稱《通知》&#xff09;&#xff0c;是繼2月民營企業座談會后深化能源領域市場化改革的關鍵政策&#xff0c;標志著民營經濟在“雙碳”目標引領下正式進入能源轉型的核心賽道。 自…

Vue實現不同網站之間的Cookie共享功能

前言 最近有小伙伴在聊天室中提到這么一個需求&#xff0c;就是說希望用戶在博客首頁中登錄了之后&#xff0c;可以跳轉到管理系統去發布文章。這個需求的話就涉及到了不同網站之間cookie共享的功能&#xff0c;那么咱們就來試著解決一下這個功能。 實現方式 1. 后端做中轉 …

在一臺服務器上通過 Nginx 配置實現不同子域名訪問靜態文件和后端服務

一、域名解析配置 要實現通過不同子域名訪問靜態文件和后端服務&#xff0c;首先需要進行域名解析。在域名注冊商或 DNS 服務商處&#xff0c;為你的兩個子域名 blog.xxx.com 和 api.xxx.com 配置 A 記錄或 CNAME 記錄。將它們的 A 記錄都指向你服務器的 IP 地址。例如&#x…

Opencv進階操作:圖像拼接

文章目錄 前言一、圖像拼接的原理1. 特征提取與匹配2. 圖像配準3. 圖像變換與投影4. 圖像融合5. 優化與后處理 二、圖像拼接的簡單實現&#xff08;案例實現&#xff09;1.引入庫2.定義cv_show()函數3.創建特征檢測函數detectAndDescribe()4.讀取拼接圖片5.計算圖片特征點及描述…

LLM 論文精讀(三)Demystifying Long Chain-of-Thought Reasoning in LLMs

這是一篇2025年發表在arxiv中的LLM領域論文&#xff0c;主要描述了長思維鏈 Long Chain-of-Thought 對LLM的影響&#xff0c;以及其可能的生成機制。通過大量的消融實驗證明了以下幾點&#xff1a; 與shot CoT 相比&#xff0c;long CoT 的 SFT 可以擴展到更高的性能上限&…

計算機網絡常識:緩存、長短連接 網絡初探、URL、客戶端與服務端、域名操作 tcp 三次握手 四次揮手

緩存&#xff1a; 緩存是對cpu&#xff0c;內存的一個節約&#xff1a;節約的是網絡帶寬資源 節約服務器的性能 資源的每次下載和請求都會造成服務器的一個壓力 減少網絡對資源拉取的延遲 這個就是瀏覽器緩存的一個好處 表示這個html頁面的返回是不要緩存的 忽略緩存 需要每次…

《構建社交應用用戶激勵引擎:React Native與Flutter實戰解析》

React Native憑借其與JavaScript和React的緊密聯系&#xff0c;為開發者提供了一個熟悉且靈活的開發環境。在構建用戶等級體系時&#xff0c;它能夠充分利用現有的前端開發知識和工具。通過將用戶在社交應用中的各種行為進行量化&#xff0c;比如發布動態的數量、點贊評論的次數…

接口自動化測試框架詳解(pytest+allure+aiohttp+ 用例自動生成)

&#x1f345; 點擊文末小卡片&#xff0c;免費獲取軟件測試全套資料&#xff0c;資料在手&#xff0c;漲薪更快 近期準備優先做接口測試的覆蓋&#xff0c;為此需要開發一個測試框架&#xff0c;經過思考&#xff0c;這次依然想做點兒不一樣的東西。 接口測試是比較講究效…

Linux-----文件系統

文件大家都知道&#xff0c;前面的我的博客課程也為大家解釋了關于文件的打開等&#xff0c;今天我們要談論的是 文件在沒被打開的時候在磁盤中的位置和找到它的方式。 畫圖為大家展示&#xff1a; 方便理解 我們從下面幾個方面入手&#xff1a; 1. 看看物理磁盤 2. 了解一…

C++ set替換vector進行優化

文章目錄 demo代碼解釋&#xff1a; 底層原理1. 二叉搜索樹基礎2. 紅黑樹的特性3. std::set 基于紅黑樹的實現優勢4. 插入操作5. 刪除操作6. 查找操作 demo #include <iostream> #include <set>int main() {// 創建一個存儲整數的std::setstd::set<int> myS…

如何巧妙解決 Too many connections 報錯?

1. 背景 在日常的 MySQL 運維中&#xff0c;難免會出現參數設置不合理&#xff0c;導致 MySQL 在使用過程中出現各種各樣的問題。 今天&#xff0c;我們就來講解一下 MySQL 運維中一種常見的問題&#xff1a;最大連接數設置不合理&#xff0c;一旦到了業務高峰期就會出現連接…

QT的布局和彈簧及其代碼解讀

this指的是真正的當前正在顯示的窗口 main函數&#xff1a; Widget w是生成了一個主窗口&#xff0c;QT Designer是在這個主窗口里塞組件 w.show()用來展示這個主窗口 頭文件&#xff1a; namespace Ui{class Widget;}中的class Widget和下面的class Widget不是一個東西 Ui…

《AI大模型應知應會100篇》第52篇:OpenAI API 使用指南與最佳實踐

第52篇&#xff1a;OpenAI API 使用指南與最佳實踐 &#x1f4cc; 摘要 本文將帶你從零開始掌握 OpenAI API 的核心使用方法&#xff0c;涵蓋從基礎調用到高級功能的完整實戰路徑。通過詳細的代碼示例、圖文解析和可運行的 Python 腳本&#xff0c;幫助你快速上手 GPT-3.5、GP…

C#學習7_面向對象:類、方法、修飾符

一、類 1class 1)定義類 訪問修飾符class 類名{ 字段 構造函數&#xff1a;特殊的方法&#xff08;用于初始化對象&#xff09; 屬性 方法... } eg: public class Person { // 字段 private string name; private int a…