226.翻轉二叉樹

翻轉一棵二叉樹。

226.翻轉二叉樹

思路:

指針做交換

用遞歸(前序or后序,中序不行)

前序:中左右

遍歷到“中”的時候,交換它的左右孩子

然后分別對它的左孩子和右孩子使用“交換函數”(定義的)(遞歸)

用后序遍歷也可以,就是先分別對左右孩子用交換函數,然后把“中”的左右孩子交換順序。

中序遍歷不可以,因為如果是左中右,先對左子樹使用交換函數,然后交換左右子樹,然后對右子樹使用交換函數(但是此時的右子樹是之前的左子樹,已經處理過了),但是如果這時繼續還是處理左子樹,那是可以的,相當于處理了原來的右子樹。

前序遍歷:

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:def invertTree(self, root: Optional[TreeNode]) -> Optional[TreeNode]:if not root:return Noneroot.left, root.right = root.right, root.leftself.invertTree(root.left)self.invertTree(root.right)return root

后序遍歷:

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:def invertTree(self, root: Optional[TreeNode]) -> Optional[TreeNode]:if not root:return None      self.invertTree(root.left)self.invertTree(root.right)root.left, root.right = root.right, root.leftreturn root

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

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

相關文章

【網絡版本計算器的實現】

本章重點 理解應用層的作用, 初識HTTP協議理解傳輸層的作用, 深入理解TCP的各項特性和機制對整個TCP/IP協議有系統的理解對TCP/IP協議體系下的其他重要協議和技術有一定的了解學會使用一些分析網絡問題的工具和方法 ?注意!! 注意!! 注意!! 本課是網絡編程的理論基礎.是一個服務…

零基礎學Java第二十二天之迭代器 Iterator

迭代器 Iterator 的理解和相關集合 使用 1、理解 迭代器(Iterator)是設計模式中的一種,它允許程序員遍歷容器(例如列表、集合等)中的元素,而無需了解容器底層的實現細節。在編程中,迭代器提供了…

?第18章:JDK8-17新特性

1. 新特性概述 > 角度1:新的語法規則 (多關注)比如:lambda表達式、enum、annotation、自動拆箱裝箱、接口中的默認方法和靜態方法、switch表達式、record等> 角度2:增加、過時、刪除API比如:新的日期…

《子數整數》

描述 對于一個五位數a1?a2?a3?a4?a5?,可將其拆分為三個子數: sub1?a1?a2?a3? sub2?a2?a3?a4? sub3?a3?a4?a5? 例如,五位數20207可以拆分成 sub1?202 sub2?020(20) sub3?207 現在給定一個正整數K,要求你編程求…

【系統架構師】-論文-系統安全性與保密性設計

1、摘要: 2018 年初,我所在的公司為一票務公司開發開票業務平臺的建設。我在該項目中擔任系統架構設計師的職務,主要負責設計平臺系統架構和安全體系架構。該平臺以采用 B/S 架構服務用戶,采用”平臺應用”的模式解決現有應用單機獨立開票的模…

【YOLOv5/v7改進系列】替換激活函數為SiLU、ReLU、LeakyReLU、FReLU、PReLU、Hardswish、Mish、ELU等

一、導言 激活函數在目標檢測中的作用至關重要,它們主要服務于以下幾個關鍵目的: 引入非線性:神經網絡的基本構建塊(如卷積層、全連接層等)本質上是線性變換,而激活函數通過引入非線性,使得網絡…

urllib3 發起https請求時報錯 certificate verify failed

情況描述 近期需要訪問https的一個API接口同步數據,在辦公主機完成urllib3初步的測試以后,到測試環境驗證發現無法請求,報錯: 提示:解決辦法可以直接到第四節查看 一、提示 SSL 認證失敗 OpenSSL.SSL.Error: [(SSL …

保安維穩,四信以科技構筑高速公路安全智慧防線

近日,廣東梅大高速發生嚴重塌方事故,造成了嚴重的人員傷亡和財產損失。這一事件在公眾心中敲響了安全的警鐘,再次引起了公眾對于交通設施運營安全性的重點關注。 國務院安委會辦公室和國家防災減災救災委員會辦公室等主管機構先后印發緊急通知…

Spring Security整合Gitee第三方登錄

文章目錄 學習鏈接環境準備1. 搭建基本web應用引入依賴ThirdApp啟動類創建index頁面application.yml配置訪問測試 2. 引入security引入依賴ProjectConfig訪問測試 第三方認證簡介注冊gitee客戶端實現1引入依賴application.yml配置文件創建index.html頁面啟動類InfoControllerPr…

【數學建模】儲藥柜的設計

2014高教社杯全國大學生數學建模競賽D題目 題目描述 儲藥柜的結構類似于書櫥,通常由若干個橫向隔板和豎向隔板將儲藥柜分割成若干個儲藥槽(如圖1所示)。為保證藥品分揀的準確率,防止發藥錯誤,一個儲藥槽內只能擺放同一種藥品。藥品在儲藥槽…

Python閉包探索,釋放函數記憶的秘術

引言 hello,大家好,我是一點,專注于Python編程,如果你也對感Python感興趣,歡迎關注交流。 希望可以持續更新一些有意思的文章,如果覺得還不錯,歡迎點贊關注,有啥想說的,可…

docker搭建gitlab及默認密碼修改及配置修改

推薦官方文檔 https://docs.gitlab.com/17.0/ee/install/docker.html 我使用的是docker run的方式,官方文檔后面有docker-compose、swarm、k8s的部署文檔 版本說明 1:可以部署gitlab-ce社區版和gitlab-ee企業版,然后,鑒于是個人…

Mysql總結2

Mysql慢優化 在mysql中,long_query_time的值為10,當sql語句執行的時間超過這個數值時,則會被記錄到慢查詢日志中。 Mysql語句查詢流程 1、客戶端發送sql語句到服務端; 2、服務端查看是否打開了緩存,若緩存打開&…

AIGC繪畫設計基礎-建筑設計應用

一、AI及AIGC 對于AI大家都不陌生,但是AIGC這個概念好多人其實不大清楚。“AI”是指人工智能技術本身,而“AIGC”是指基于人工智能技術而生成的內容。 生成式人工智能——AIGC(Artificial Intelligence Generated Content)&…

近鄰算法詳解

近鄰算法(Nearest Neighbor Algorithm),也稱為K-近鄰算法(K-Nearest Neighbors,KNN),是一種基本的分類和回歸方法。它的工作原理非常直觀:通過測量不同特征點之間的距離來進行預測。…

使用CommandLine庫創建.NET命令行應用

CommandLine是一個.NET庫,用于創建命令行應用程序。它提供了一種簡單的方法來解析命令行參數,并且可以幫助您構建一個功能強大的命令行界面。在本文中,我們將介紹如何使用CommandLine庫創建.NET命令行應用程序。 1. 背景 在.NET開發中&#…

SpringFramework實戰指南

二、SpringFramework實戰指南 目錄 一、技術體系結構 1.1 總體技術體系1.2 框架概念和理解 二、SpringFramework介紹 2.1 Spring 和 SpringFramework概念2.2 SpringFramework主要功能模塊2.3 SpringFramework 主要優勢 三、Spring IoC容器和核心概念 3.1 組件和組件管理概念3…

起底震網病毒的來龍去脈

2010年,震網病毒被發現,引起世界嘩然,在后續的10年間,陸陸續續有更多關于該病毒的背景和細節曝光。今年,《以色列時報》和《荷蘭日報》又披露了關于此事件的更多信息,基于這些信息,我們重新梳理…

優于InstantID!中山大學提出ConsistentID:可以僅使用單個圖像根據文本提示生成不同的個性化ID圖像

給定一些輸入ID的圖像,ConsistentID可以僅使用單個圖像根據文本提示生成不同的個性化ID圖像。效果看起來也是非常不錯。 相關鏈接 Code:https://github.com/JackAILab/ConsistentID Paper:https://ssugarwh.github.io/consistentid.github.io/arXiv.pd…