Day37 代碼隨想錄打卡|二叉樹篇---對稱二叉樹

題目:
給你一個二叉樹的根節點?root?, 檢查它是否軸對稱。

方法:本體可以用遞歸和迭代兩種方法,但我更喜歡迭代的方式,因此使用迭代的方式做一下。首先我們分析一下不對稱的情況。因為對稱的情況很簡單,即兩個節點相等,同時為空或者是同時不為空且數值相等。不對稱的情況可能有以下幾種:一邊為空,另一邊不為空;兩邊都不為空但數值不相等。因此我們可以將需要比對的節點按照順序放入隊列中,并用樹的節點指針取出需要比對的節點,依次按照我們上面描述的幾種情況判斷是否對稱,隨后將左子樹的左節點,右子樹的右節點,左子樹的右節點和右子樹的左節點按照順序放入隊列中,等待著進行下一輪的比對。

題解:

class Solution {
public:bool isSymmetric(TreeNode* root) {if(root == NULL) return true;          //根節點為空是對稱的queue<TreeNode*> que;que.push(root->left);                  //根的左子樹入隊que.push(root->right);                 //根的右子樹入隊while(!que.empty()){TreeNode* leftNode = que.front();  que.pop();TreeNode* rightNode = que.front();  que.pop();if (!leftNode && !rightNode) {     //左右節點同時為空,算對稱的continue;}if((!leftNode || !rightNode || (leftNode->val != rightNode->val))){return false;}que.push(leftNode->left);          //左子樹的左節點que.push(rightNode->right);        //右子樹的右節點que.push(leftNode->right);         //左子樹的右節點que.push(rightNode->left);         //右子樹的左節點}return true;}
};


?

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

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

相關文章

實現一個簡單的 Google Chrome 擴展程序

目錄 &#x1f9ed; 效果展示 # 圖示效果 a. 拓展程序列表圖示效果&#xff1a; b. 當前選項卡頁面右鍵效果&#xff1a; c. 拓展程序消息提示效果&#xff1a; &#x1f4c7; 項目目錄結構 # 說明 # 結構 # 文件一覽 ? 核心代碼 # manifest.json # background.j…

星融元獲2024網絡開源優秀創新成果獎!

5月25日&#xff0c;星融元受邀參加2024年第四屆網絡開源技術生態大會&#xff0c;分享主題為“開放的網絡 開放的AI生態”主題演講&#xff0c;深受現場用戶的認可&#xff1b;《Easy RoCE&#xff1a;基于SONiC、Klish和Prometheus的極簡無損網絡解決方案》獲得2024網絡開源優…

SpheroGPT: 聲控自然語言編程 AI 玩具 Demo 具身智能 圖文解說 完全開源機器人

背景介紹 因為生病請了長假. 一周前狀態開始恢復, 于是嘗試用 LLM (ChatGPT3.5) + Sphero 開發一個可以聲控自然語言編程的 AI 玩具, 作為學習 ChatGPT 應用開發的方法. 差不多十天時間把開發目標基本都實現了, 這里和大家分享一下心得體會. Demo 示例視頻 先把錄制的幾個 d…

云原生Kubernetes: 云主機部署K8S 1.30版本 單Master架構

目錄 一、實驗 1.環境 2.Termius連接云主機 3.網絡連通性與安全機制 4.云主機部署docker 5.云主機配置linux內核路由轉發與網橋過濾 6.云主機部署cri-dockerd 7.云主機部署kubelet,kubeadm,kubectl 8.kubernetes集群初始化 9.容器網絡&#xff08;CNI&#xff09;部署…

Docker學習筆記 - 創建自己的image

目錄 基本概念常用命令使用docker compose啟動腳本創建自己的image 使用Docker是現在最為流行的軟件發布方式&#xff0c; 本系列將闡述Docker的基本概念&#xff0c;常用命令&#xff0c;啟動腳本和如何生產自己的docker image。 在我們發布軟件時&#xff0c;往往需要把我…

解析邊緣計算網關的優勢-天拓四方

隨著信息化、智能化浪潮的持續推進&#xff0c;計算技術正以前所未有的速度發展&#xff0c;而邊緣計算網關作為其中的重要一環&#xff0c;以其獨特的優勢正在逐步改變我們的生活方式和工作模式。本文將詳細解析邊緣計算網關的優勢。 首先&#xff0c;邊緣計算網關具有顯著的…

uniapp頁面vue3下拉觸底發送獲取新數據請求實現分頁功能

頁面下拉觸底獲取新數據實現分頁功能實現方式有兩種&#xff0c;根據自己的業務需求來定&#xff0c;不同的方案適用場景不一樣&#xff0c;有的是一整個頁面下拉獲取新數據&#xff0c;有的是部分盒子內容滾動到底部時候實現獲取新數據&#xff0c;下面討論一下兩種方式的區別…

C語言中 一種特殊的 數組或結構體 初始化方法

在C語言中&#xff0c;初始化器&#xff08;Initializer&#xff09;是一種特殊的語法&#xff0c;用于在變量定義時設置初始值。對于不同類型的變量&#xff08;如基本類型、數組、結構體和聯合體&#xff09;&#xff0c;初始化器的用法有所不同。 1. 基本類型 對于基本數據…

JSON-RPC跨域通信:Python服務器端解決方案與Js客戶端 Mozilla擴展程序

問題背景 構建一個 Mozilla 擴展程序&#xff0c;與遠程服務器上的 Python 應用程序進行通信以發送和接收數據。Python 應用程序可以通過 Python 控制臺使用 xml-rpc 調用。嘗試設計一個 JSON-RPC 來聯系同一個應用程序。開發 Python 服務器端&#xff0c;可以通過 python 控制…

CSP十滴水

題目給的容器很多&#xff0c;1e9&#xff0c;我們遍歷肯定會超時。 但是他給的信息是&#xff0c;m只有3e5&#xff0c;且每次滴水都會滴在有水的地方&#xff0c;水滿了之后也只會擴散到左右有水的地方。也就是說&#xff0c;只有有水的地方才是我們會用到的地方。 所以&am…

【高數】重點內容,公式+推導+例題,大學考試必看

目錄 1 隱函數求導1.1 公式1.2 說明1.3 例題 2 無條件極值2.1 運用2.2 求解2.3 例題 3 條件極值3.1 運用3.2 求解3.3 例題 4 二重積分4.1 直角坐標下4.2 極坐標下4.3 例題 5 曲線積分5.1 第一型曲線積分5.2 第二型曲線積分5.3 例題 6 格林公式6.1 公式6.2 說明6.3 例題 &#x…

Postman進階功能-集合分支管理與編寫接口文檔

大家好&#xff0c;在接口測試的領域中&#xff0c;我們不斷追求更高效、更便捷、更強大的方法與工具。而 Postman 作為一款備受青睞的接口測試工具&#xff0c;其進階功能更是為我們打開了新的天地。在這其中&#xff0c;集合分支管理與編寫接口文檔的功能顯得尤為重要。 當面…

作業-day-240527

Cday1思維導圖 定義自己的命名空間my_sapce&#xff0c;在my_sapce中定義string類型的變量s1&#xff0c;再定義一個函數完成對字符串的逆置 #include <iostream>using namespace std;namespace my_space {string s1"abc123";string recover(string s){int i0…

go-zero 實戰(3)

引入 Redis 在之前的 user 微服務中引入 redis。 1. 修改 user/internal/config/config.go package configimport ("github.com/zeromicro/go-zero/core/stores/cache""github.com/zeromicro/go-zero/zrpc" )type Config struct {zrpc.RpcServerConfMys…

拖線無人機技術

拖線無人機技術是一種獨特且高效的無人機應用技術&#xff0c;其設計理念源于風箏。這種無人機不僅能夠在空中穩定飛行&#xff0c;而且具備極強的抗干擾能力&#xff0c;使其在各種復雜環境下都能保持通信暢通和任務執行的高效。 拖線無人機技術的核心在于其拖線系統。與傳統…

Overall Accuracy(OA)、Average Accuracy(AAcc)計算公式

以二分類為例&#xff1a;1.總體精度(Overall Accuracy, OA)&#xff1a;樣本中正確分類的總數除以樣本總數。 OA(TPTN)/(TPFNFPTN)2.平均精度(Average Accuracy, AA)&#xff1a;每一類別中預測正確的數目除以該類總數&#xff0c;記為該類的精度&#xff0c;最后求每類精度的…

2022全國大學生數學建模競賽ABC題(論文+代碼)

文章目錄 &#xff08;1&#xff09;2022A波浪能最大輸出功率&#xff08;2&#xff09;2022B無人機定位&#xff08;3&#xff09;2022C古代玻璃制品成分分析&#xff08;4&#xff09;論文和代碼鏈接 &#xff08;1&#xff09;2022A波浪能最大輸出功率 &#xff08;2&#x…

檢測 CSS 中的 JavaScript 支持

最近&#xff0c;我驚喜地發現了一個CSS媒體特性——scripting&#xff0c;它能夠在所有現代瀏覽器中使用。這意味著&#xff0c;我們可以根據用戶瀏覽器是否支持JavaScript來提供不同的CSS規則&#xff0c;從而減少未樣式化內容的閃爍或不受歡迎的布局偏移。 使用方法 使用這…

su模型轉3d模型不夠平滑怎么辦?---模大獅

當將SU模型轉換為3D模型時&#xff0c;可能會遇到模型不夠平滑的情況&#xff0c;這會影響到最終的渲染效果和視覺體驗。本文將探討在此情況下應該如何解決&#xff0c;幫助讀者更好地處理這一常見的問題。 一、檢查SU模型細分程度 首先要檢查的是原始的SU模型的細分程度。在S…

go語言之map

1.map認識 哈希表是一種巧妙并且實用的數據結構。它是一個無序的key/value對的集合&#xff0c;其中所有的key都是不同的&#xff0c;然后通過給定的key可以在常數時間復雜度內檢索、更新或者刪除對用的value。 在Go語言中&#xff0c;一個map就是一個哈希表的引用&…