LeetCode 刷題 [C++] 第226題.翻轉二叉樹

題目描述

給你一棵二叉樹的根節點 root ,翻轉這棵二叉樹,并返回其根節點。
在這里插入圖片描述

題目分析

深度優先搜索(DFS)- 遞歸方式

  1. 對于二叉樹的鏡像問題,很容易想到的就是使用遞歸來解決,自底向上依次翻轉每一個節點的左右子節點,即深度優先搜索(DFS);
  2. 需要注意的是在交換節點時,需要一個臨時變量來輔助交換過程。

Code

class Solution {
public:TreeNode* invertTree(TreeNode* root) {if (nullptr == root) {return nullptr;}TreeNode* temp = root->left;root->left = invertTree(root->right);root->right = invertTree(temp);return root;}
};

廣度優先搜索(BFS)- 輔助隊列方式

  1. 根據題意分析,可以轉換成一個層序遍歷二叉樹的問題,使用隊列的先入先出特性實現,來對每一層的節點進行鏡像,即二叉樹的廣度優先搜索(BFS);
  2. 對于每一層的處理:交換當前層每個節點的左右子節點,并把當前層節點的所有子節點保存到隊列中。循環執行該操作,直至結束。

Code

class Solution {
public:TreeNode* invertTree(TreeNode* root) {if (nullptr == root) {return nullptr;}queue<TreeNode*> que_node;que_node.push(root);while (!que_node.empty()) {TreeNode* cur_node = que_node.front();que_node.pop();swap(cur_node->left, cur_node->right);if (nullptr != cur_node->left) {que_node.push(cur_node->left);}if (nullptr != cur_node->right) {que_node.push(cur_node->right);}}return root;}
};

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

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

相關文章

2024年騰訊云優惠券領取頁面_代金券使用方法_新老用戶均可

騰訊云代金券領取渠道有哪些&#xff1f;騰訊云官網可以領取、官方媒體賬號可以領取代金券、完成任務可以領取代金券&#xff0c;大家也可以在騰訊云百科蹲守代金券&#xff0c;因為騰訊云代金券領取渠道比較分散&#xff0c;騰訊云百科txybk.com專注匯總優惠代金券領取頁面&am…

『大模型筆記』Sora:探索大型視覺模型的前世今生、技術內核及未來趨勢

Sora:探索大型視覺模型的前世今生、技術內核及未來趨勢 文章目錄 一. 摘要二. 引言楊立昆推薦的關于世界模型的真正含義(或應該是什么)的好文章。原文:Sora: A Review on Background, Technology, Limitations, and Opportunities of Large Vision Models譯文:Sora探索大型…

百度SEO快排原理是什么?如何快速排名方法?

前言&#xff1a;我之前說過我不打算寫這個快速排序。 首先&#xff0c;我從來沒有在自己的網站上操作過所謂的快速排序。 其次&#xff0c;我不能像網上很多人寫的那樣透露百度快速排序的秘密&#xff08;說實話&#xff0c;你可以透露秘密&#xff09;。 方法是有了&#xff…

Linux系統運維腳本:編寫bash腳本程序監控服務器的磁盤空間,在磁盤使用率超過閾值時發送警告郵件

目 錄 一、要求 二、解決方案 &#xff08;一&#xff09;解決思路 &#xff08;二&#xff09;方案 三、腳本程序實現 &#xff08;一&#xff09;腳本代碼和解釋 1、腳本代碼 2、代碼解釋 &#xff08;二&#xff09;腳本驗證 1、腳本編輯 2、給予執…

使用遞歸求解數組最大值(c++題解)

題目描述 輸入一個整數n&#xff08;n不大于1000&#xff09;&#xff0c;接下來分別為n個整數&#xff0c;請使用遞歸求取最大值。 輸入格式 第一行&#xff1a;正整數n。 第二行&#xff1a;n個整數。 輸出格式 輸出最大值 樣例 樣例輸入 復制2 1 2樣例輸出 復制2 …

Postman: 前端必備工具還是后端獨享利器

Postman 的使用場景&#xff1a;適用于前端和后端 Postman 是一個流行的 API 測試與開發工具。它被廣泛地應用在前后端開發的過程中&#xff0c;但是很多人對于它的使用場景存在疑惑。那么&#xff0c;到底是前端用還是后端用呢&#xff1f;本文將從多個角度詳細解答這個問題。…

Node.js_基礎知識(CommonJS模塊化)

CommonJS模塊化規范 加載時機&#xff1a; 服務器端: 模塊的加載是運行時同步加載的&#xff0c;node.js實現了模塊化規范瀏覽器端: 模塊需要提前編譯打包處理&#xff0c;需使用Browserify編譯打包&#xff0c;推薦使用ESM 暴露模塊&#xff1a;module.exports、exports導入模…

“а”搭配使用更地道,柯橋外貿俄語培訓

1、а именно 就是說&#xff0c;就是&#xff0c;正是 例&#xff1a; в то время, а именно год назад. 那時, 也就是一年前。 не кто иной, а именно г-н Ван. 不是別人&#xff0c;就是王先生 2、а наоборот …

【嵌入式——QT】QListWidget

QListWidget類提供了一個基于項的列表小部件&#xff0c;QListWidgetItem是列表中的項&#xff0c;該篇文章中涉及到的功能有添加列表項&#xff0c;插入列表項&#xff0c;刪除列表項&#xff0c;清空列表&#xff0c;向上移動列表項&#xff0c;向下移動列表項。 常用API a…

C語言數據結構基礎——雙鏈表專題

前言 書接上回&#xff0c;雙鏈表便是集齊帶頭、雙向、循環等幾乎所有元素的單鏈表PLUS. 1.初始化、創建雙鏈表 typedef int LTDataType; typedef struct LTNode {LTDataType data;struct LTNode* next;struct LTNode* prev; }LTNode; 不同于單鏈表&#xff0c;此時每個節點應…

selenium初始學習--打開新標簽操作

selenium 打開新標簽操作 簡單說一下使用 環境 &#xff1a;python 3.9 selenium 4,18 初始化操作 目的 打開bilibilie網站并搜索視頻&#xff08;電影&#xff09; 并點擊觀看 操作 打開應用并搜索網址 from selenium import webdriver import timefrom selenium.webdr…

PySide6+VSCode Python可視化環境搭建

#記住在cmd中運行&#xff0c;不要在vscode里運行&#xff0c;否則env會裝到工程目錄下 python -m venv env #env\Scripts\activate.bat pip install pyside6 下載本期源碼 vscode裝一個PYQT Integration插件&#xff0c;設置好兩個路徑&#xff08;下面有個腳本用于獲取路徑&…

MySQL 數據庫表設計和優化

一、數據結構設計 正確的數據結構設計對數據庫的性能是非常重要的。 在設計數據表時&#xff0c;盡量遵循一下幾點&#xff1a; 將數據分解為合適的表&#xff0c;每個表都應該有清晰定義的目的&#xff0c;避免將過多的數據存儲在單個表中。使用適當的數據類型來存儲數據&…

2020小學甲組--恢復數組

題目描述 有一個數組a[1..n]&#xff0c;但是這個數組的內容丟失了&#xff0c;你要嘗試恢復它。已知以下的三個事實&#xff1a; 1、對于1<i<n&#xff0c;都有a[i]>0&#xff0c;且所有的a[i]互不相同。即a數組保存的全部都是正整數&#xff0c;且互不相同。 2、…

挑戰杯 基于機器視覺的車道線檢測

文章目錄 1 前言2 先上成果3 車道線4 問題抽象(建立模型)5 幀掩碼(Frame Mask)6 車道檢測的圖像預處理7 圖像閾值化8 霍夫線變換9 實現車道檢測9.1 幀掩碼創建9.2 圖像預處理9.2.1 圖像閾值化9.2.2 霍夫線變換 最后 1 前言 &#x1f525; 優質競賽項目系列&#xff0c;今天要分…

范偉:你們怎么老提1,200呢,有什么典故啊?趙本山:沒有啊!

范偉&#xff1a;你們怎么老提1,200呢,有什么典故啊?趙本山&#xff1a;沒有啊&#xff01; --小品《面子》&#xff08;中3&#xff09;的臺詞 表演者&#xff1a;趙本山 高秀敏 范偉 &#xff08;接上&#xff09; 范偉&#xff1a;哎吃啊 趙&#xff1a;哎呀這電視看的挺…

Acwing枚舉、模擬與排序(一)

連號區間數 原題鏈接&#xff1a;https://www.acwing.com/problem/content/1212/ 初始最小值和最大值的依據是題目給出的數據范圍。只要在數據范圍之外就可以。 連號的時候&#xff0c;相鄰元素元素之間&#xff0c;差值為1。那么區間右邊界和左邊界&#xff0c;的值的差&#…

cAdvisor+Prometheus+Grafana 搞定Docker容器監控平臺

cAdvisorPrometheusGrafana cAdvisorPrometheusGrafana 搞定Docker容器監控平臺1、先給虛擬機上傳cadvisor2、What is Prometheus?2.1、架構圖 3、利用docker安裝普羅米修斯4、安裝grafana cAdvisorPrometheusGrafana 搞定Docker容器監控平臺 1、先給虛擬機上傳cadvisor cAd…

MySQL事務和鎖機制

MySQL技術——事務和鎖機制 一、事務&#xff08;1&#xff09;概述&#xff08;2&#xff09;ACID特性&#xff08;3&#xff09;事務并發存在的問題&#xff08;4&#xff09;事務的隔離級別 二、鎖機制&#xff08;1&#xff09;鎖的力度&#xff08;2&#xff09;表的分類&…

網絡編程-編碼與解碼(Protobuf)

編碼與解碼 下面的文字都來自于極客時間 為什么要編解碼呢&#xff1f;因為計算機數據傳輸的是二進制的字節數據 解碼&#xff1a;字節數據 --> 字符串&#xff08;字符數據&#xff09; 編碼&#xff1a;字符串&#xff08;字符數據&#xff09;–> 字節數據 我們在編…