劍指offer面試題28:對稱的二叉樹

#試題28:對稱的二叉樹

題目:

請設計一個函數判斷一棵二叉樹是否 軸對稱

示例 1:

img

輸入:root = [6,7,7,8,9,9,8]
輸出:true
解釋:從圖中可看出樹是軸對稱的。

示例 2:

img

輸入:root = [1,2,2,null,3,null,3]
輸出:false
解釋:從圖中可看出最后一層的節點不對稱。

思路:

1.中序遍歷是左中右,所以初步想法是使用中序遍歷把二叉樹遍歷一遍添加到容器中,這時候要把空著的節點以null的形式添加進容器,針對這種[1,2,2,2,null,2]樹結構,然后把容器分為兩段比較他們的值,從而得出是否是對稱二叉樹
在這里插入圖片描述

2.書中的想法是使用迭代的思路,將比較左右兩個節點,判斷他們的情況一共有四種情況,都為空true,一個為空一個不為空false,值不一樣false,值一樣則繼續判斷左節點的左子節點與右節點的右子節點情況&&左節點的右子節點與右節點的左子節點情況

代碼:

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode() : val(0), left(nullptr), right(nullptr) {}*     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}*     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {
public:bool check(TreeNode* root_left,TreeNode* root_right){if(root_left==nullptr&&root_right==nullptr)return true;if(root_left==nullptr || root_right==nullptr)return false;if(root_left->val!=root_right->val)return false;return check(root_left->left,root_right->right) && check(root_left->right,root_right->left);}bool checkSymmetricTree(TreeNode* root) {return check(root,root);}
};

leetcode101題

考點:

  1. 考察對二叉樹的理解,實質上是利用樹的遍歷算法解決問題。
  2. 考察思維能力,樹的對稱是一個抽象的概念,需要微秒在短時間內清楚判斷對稱的步驟并轉化為代碼

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

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

相關文章

【合宙ESP32C3 Arduino開發】第四篇:TFT_eSPI 驅動 合宙Air101 ST7735 LCD 顯示普通時鐘,模塊化編程

忘記過去,超越自己 ?? 博客主頁 單片機菜鳥哥,一個野生非專業硬件IOT愛好者 ???? 本篇創建時間 2024-03-02???? 本篇更新時間 2024-03-02??🎉 歡迎關注 🔎點贊 👍收藏 ??留言📝🙏…

白話大模型② | 如何提升AI分析的準確性?

白話大模型系列共六篇文章,將通俗易懂的解讀大模型相關的專業術語。本文為第二篇:如何提升AI分析的準確性? 作者:星環科技 人工智能產品部 面對AI分析落地時的數量化、準確性、泛化性等問題,讓我們稍微深入了解下當前…

pycharm專業版本的安裝

一 、到官網下載對應的pycharm安裝包 也可以把安裝軟件(用物理機下載到共享文件夾) 然后進入Ubuntu系統把下載大的安裝包剪貼到目標路徑 1 在ubuntu中創建一個用來存放pycharm安裝包的文件夾 rootzmq-virtual-machine:/home/zmq/Desktop# mkdir pycha…

京東云硬鋼阿里云:承諾再低10%

關注盧松松,會經常給你分享一些我的經驗和觀點。 阿里云剛剛宣布史上最大規模的全線產品降價20%,這熱度還沒過,京東云當晚就喊話:“隨便降、比到底!,全網比價,擊穿低價,再低10%”,并…

[技巧]Arcgis之圖斑四至范圍批量計算

ArcGIS圖層(點、線、面三類圖形)四至范圍計算 例外一篇介紹:[技巧]Arcgis之圖斑四至點批量計算 說明:如下圖畫出來的框(范圍標記不是很準) ,圖斑的x最大和x最小,y最大,…

專為大模型訓練優化,百度集合通信庫 BCCL 萬卡集群快速定位故障

1 集合通信對分布式訓練至關重要 在分布式訓練中,每一塊 GPU 只負責處理部分模型或者數據。集群中不同 GPU 之間通過集合通信的方式,完成梯度同步和參數更新等操作,使得所有 GPU 能夠作為一個整體加速模型訓練。 如果有一塊 GPU 在集合通…

C++調用PyTorch模型教程

在人工智能的世界中,PyTorch已經成為了研究人員和工程師們廣泛使用的深度學習框架之一。它以其靈活性和動態計算圖而聞名,非常適合快速原型設計和實驗。然而,當我們想要將訓練好的模型部署到生產環境中時,我們可能會傾向于使用C這…

老衛帶你學---leetcode刷題(172. 階乘后的零)

172. 階乘后的零 問題 給定一個整數 n ,返回 n! 結果中尾隨零的數量。 提示 n! n * (n - 1) * (n - 2) * … * 3 * 2 * 1 示例 1: 輸入:n 3 輸出:0 解釋:3! 6 ,不含尾隨 0 示例 2: 輸入…

Java Web之網頁開發基礎復習

tomcat之網頁開發基礎復習 **聲明** :HTML標準規范 </!doctype> <html> : 根標簽 <head>: 頭部標簽 內含<title><meta><link><style> <body>: 主體 <body></body> html標簽 單標簽: <標簽名 \> 雙標…

Python線性代數數字圖像和小波分析之二

要點 數學方程&#xff1a;數字信號和傅里葉分析&#xff0c;離散時間濾波器&#xff0c;小波分析Python代碼實現及應用變換過程&#xff1a; 讀取音頻和處理音頻波&#xff0c;使用Karplus-強算法制作吉他音頻離散傅里葉計算功能和繪制圖示結果計算波形傅里葉系數正向和反向&…

1_SQL

文章目錄 前端復習SQL數據庫的分類關系型數據庫非關系型數據庫&#xff08;NoSQL&#xff09; 數據庫的構成軟件架構MySQL內部數據組織方式 SQL語言登錄數據庫數據庫操作查看庫創建庫刪除庫修改庫 數據庫中表的操作選擇數據庫創建表刪除表查看表修改表 數據庫中數據的操作添加數…

性別和年齡的視頻實時監測項目

注意&#xff1a;本文引用自專業人工智能社區Venus AI 更多AI知識請參考原站 &#xff08;[www.aideeplearning.cn]&#xff09; 性別和年齡檢測 Python 項目 首先介紹性別和年齡檢測的高級Python項目中使用的專業術語 什么是計算機視覺&#xff1f; 計算機視覺是使計算機能…

基于Camunda實現bpmn 2.0各種類型的任務

基于Camunda實現bpmn中各種類型任務 ? Camunda Modeler -為流程設置器&#xff08;建模工具&#xff09;&#xff0c;用來構建我們的流程模型。Camunda Modeler流程繪圖工具&#xff0c;支持三種協議類型流程文件分別為&#xff1a;BPMN、DMN、Form。 ? Camunda Modeler下載…

笨辦法:基于后端Matplotlib生成圖片, 前端繪制報表

很久很久以前, 做過一個項目, 因為前端基礎差, echarts搗鼓不來, 然后就折騰出來一套比較奇葩的技術方案, 就是前端需要什么圖表, 后端先繪制好, 然后前端需要什么圖表, 再從后端拉取后端之前響應的圖片路徑, 再去做渲染。 其實基于后端使用 Matplotlib 繪制圖表,前端…

DangZero:通過直接頁表訪問的高效UAF檢測(摘要及介紹及背景翻譯)

先通過翻譯過一遍文章&#xff0c;然后再對每個章節進行總結 摘要 Use-after-free vulnerabilities remain difficult to detect and mitigate, making them a popular source of exploitation. Existing solutions in- cur impractical performance/memory overhead, requir…

powershell界面中,dir命令的效果

常用參數 -path D:\111\111_2。讀取指定路徑。 -Name。只輸出文件名 -Include *.txt。指定后綴的文件 -Recurse。搜索目錄及其子目錄。 -Force。顯示具有 h 模式的隱藏文件。 >1dir.txt。將結果入指定文件 各參數使用效果 dir PS D:\111\111_2> dir 目錄: D:\111…

初中孩子最近不愿意上學怎么辦?有什么好方法可以解決?

這個年齡段屬于叛逆期&#xff0c;這個時候孩子出現厭學問題很正常&#xff0c;家長應該多些耐心和時間&#xff0c;不要一味地責罵&#xff0c;會更加排斥和反感&#xff0c;叛逆的。可以跟孩子好好談談聊聊&#xff0c;學會傾聽他的心聲&#xff0c;愿意聽你說話在教育和引導…

配置MySQL與登錄模塊

使用技術 MySQL&#xff0c;Mybatis-plus&#xff0c;spring-security&#xff0c;jwt驗證&#xff0c;vue 1. 配置Mysql 1.1 下載 MySQL :: Download MySQL Installer 1.2 安裝 其他頁面全選默認即可 1.3 配置環境變量 將C:\Program Files\MySQL\MySQL Server 8.0\bin…

10個常見的Java面試問題及其答案

問題&#xff1a; Java的主要特性是什么&#xff1f; 答案&#xff1a; Java的主要特性包括面向對象、平臺無關、自動內存管理、安全性、多線程支持、豐富的API和強大的社區支持。 問題&#xff1a; 什么是Java的垃圾回收機制&#xff1f; 答案&#xff1a; Java的垃圾回收機…

【Spring Boot 源碼學習】BootstrapRegistry 初始化器實現

《Spring Boot 源碼學習系列》 BootstrapRegistry 初始化器實現 一、引言二、往期內容三、主要內容3.1 BootstrapRegistry3.2 BootstrapRegistryInitializer3.3 BootstrapRegistry 初始化器實現3.3.1 定義 DemoBootstrapper3.3.2 添加 DemoBootstrapper 四、總結 一、引言 前面…