Leetcode 572:另一顆樹的子樹

給你兩棵二叉樹?root?和?subRoot?。檢驗?root?中是否包含和?subRoot?具有相同結構和節點值的子樹。如果存在,返回?true?;否則,返回?false?。

二叉樹?tree?的一棵子樹包括?tree?的某個節點和這個節點的所有后代節點。tree?也可以看做它自身的一棵子樹。

思路:用兩個遞歸,第一個遞歸,在root樹中尋找與subRoot根節點相等的點,如果找不到就接著找;第二個遞歸,比較兩個樹是否相等。(Leetcode100)

public static boolean isSubtree(TreeNode root, TreeNode subRoot) {return search(root,subRoot);}//找到兩棵樹的根節點比較(本質上是找子樹的根節點)public static boolean search(TreeNode root,TreeNode subRoot){if(root==null) return false;//如果相等,則返回trueboolean res=compare(root,subRoot);if(res) return true;//不相等,分別判斷root的左右子樹是否與subRoot相等boolean left=search(root.left,subRoot);if(left) return true;boolean right=search(root.right,subRoot);if(right) return true;return false;}//比較兩顆樹p、q是否相等public static boolean compare(TreeNode p, TreeNode q) {//先判斷為空的情況if(p==null && q!=null){return false;}else if(p!=null && q==null){return false;}else if(p==null && q==null){return true;}else if(p.val!=q.val){    //不為空的情況return false;}boolean l=compare(p.left,q.left);boolean r=compare(p.right,q.right);return l&&r;}

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

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

相關文章

【linux】詳解linux基本指令

目錄 cat more less head tail 時間 cal find grep zip/unzip tar bc uname –r 關機 小編一共寫了兩篇linux基本指令,這兩篇涵蓋了大部分初學者的必備指令,這是第二篇,第一篇詳見http://t.csdnimg.cn/HRlVt cat 適合查看小文…

網站localhost和127.0.0.1可以訪問,本地ip不可訪問解決方案

部署了一個網站, 使用localhost和127.0.0.1加端口號可以訪問, 但是使用本機的ip地址加端口號卻不行. 原因可能有多種. 可能的原因: 1 首先要確認是否localhost對應的端口是通的(直接網址訪問), 以及你無法訪問的那個本機ip是否正確(使用ping測試); 2 檢查本機的防火…

從頭理解transformer,注意力機制(下)

交叉注意力 交叉注意力里面q和KV生成的數據不一樣 自注意力機制就是悶頭自學 解碼器里面的每一層都會拿著編碼器結果進行參考,然后比較相互之間的差異。每做一次注意力計算都需要校準一次 編碼器和解碼器是可以并行進行訓練的 訓練過程 好久不見輸入到編碼器&…

docker部署springboot+Vue項目

項目介紹:后臺springboot項目,該項目環境mysql、redis 。前臺Vue:使用nginx反向代理 方法一:docker run 手動逐個啟動容器 1.docker配置nginx代理 將vue項目打包上傳到服務器上。創建文件夾存儲數據卷,html存放打包…

計算機網絡實驗1:交換機基本配置管理

實驗目的和要求 安裝Packer Tracer,了解Packer Tracer的基本操作掌握交換機基本命令集實驗項目內容 認識Packet Tracer軟件 交換機的基本配置與管理 交換機的端口配置與管理 交換機的端口聚合配置 交換機劃分Vlan配置 實驗環境 硬件:PC機&#x…

Redisson分布式鎖原理

Redisson是基于Redis實現的客戶端庫,提供了多種Java并發API映射到Redis中,也實現了各種分布式服務,其中就有各種分布式鎖的實現。 Redisson鎖彌補了SETNX鎖的的局限性,實現了可重入、可重試和超時續約的功能。 可重入&#xff1a…

解決NVM 下載node.js慢問題->最新鏡像

一、NVM 介紹 nvm是node版本管理工具,可以運行在多種操作系統上。這里主要記錄一下在windows系統的安裝和使用。 在使用過程中,下載其他版本時會出現下載慢或卡住或下載失敗的情況,是因為服務器在國外,網絡原因導致,…

代碼隨想錄Day 41|Leetcode|Python|198.打家劫舍 ● 213.打家劫舍II ● 337.打家劫舍III

198.打家劫舍 你是一個專業的小偷,計劃偷竊沿街的房屋。每間房內都藏有一定的現金,影響你偷竊的唯一制約因素就是相鄰的房屋裝有相互連通的防盜系統,如果兩間相鄰的房屋在同一晚上被小偷闖入,系統會自動報警。 給定一個代表每個…

在統計上城鄉是如何劃分的

城鄉二元結構,是長期以來我國經濟社會發展的顯著特點之一,黨和政府高度重視統籌城鄉發展,縮小城鄉差距。為了對城鄉發展予以準確反映和動態監測,提高在統計上劃分城鄉工作的一致性,國家統計局開展了統一的統計用區劃代…

【Docker學習】docker run的端口映射-p和-P選項

docker run的端口映射選項分為-p(小寫,全稱--publish),-P(大寫,全稱--publish-all),之前認為只有改變容器發布給宿主機的默認端口號才會進行-p的設置,而不改變默認端口號…

面試經典算法系列之數組/字符串6 -- 輪轉數組

面試經典算法題38-輪轉數組 LeetCode.189 公眾號:阿Q技術站 問題描述 給定一個整數數組 nums,將數組中的元素向右輪轉 k 個位置,其中 k 是非負數。 示例 1: 輸入: nums [1,2,3,4,5,6,7], k 3 輸出: [5,6,7,1,2,3,4] 解釋: 向右輪轉 1 …

YOLOv8訓練流程-原理解析[目標檢測理論篇]

關于YOLOv8的主干網絡在YOLOv8網絡結構介紹-CSDN博客介紹了,為了更好地學習本章內容,建議先去看預測流程的原理分析YOLOv8原理解析[目標檢測理論篇]-CSDN博客,再次把YOLOv8網絡結構圖放在這里,方便隨時查看。 ? 1.前言 YOLOv8訓練…

Map中KEY去除下劃線并首字母轉換為大寫工具類

在運維舊項目時候&#xff0c;碰上sql查詢結果只能返回List<Map>&#xff0c;key為表單字段名&#xff0c;value為獲取到的結果數據。 懶得一個一個敲出來&#xff0c;就直接寫個方法轉換&#xff0c;并賦值到相應實體對象里去。 Map中KEY去除下劃線并首字母轉換為大寫&…

算法提高之矩陣距離

算法提高之矩陣距離 核心思想&#xff1a;多源bfs 從多個源頭做bfs&#xff0c;求距離 先把所有1的坐標存入隊列 再把所有1連接的位置存入 一層一層求 #include <iostream>#include <cstring>#include <algorithm>using namespace std;const int N 1…

Kafka 面試題(八)

1. Kafka&#xff1a;硬件配置選擇和調優的建議 &#xff1f; Kafka的硬件配置選擇和調優是確保Kafka集群高效穩定運行的關鍵環節。以下是一些建議&#xff1a; 硬件配置選擇&#xff1a; 內存&#xff08;RAM&#xff09;&#xff1a;建議至少使用32GB內存的服務器。為Kafk…

Web3Tools - 助記詞生成

Web3Tools - 助記詞生成工具 本文介紹了一個簡單的助記詞生成工具&#xff0c;使用 React 和 Material-UI 構建。用戶可以選擇助記詞的語言和長度&#xff0c;然后生成隨機的助記詞并顯示在頁面上 功能介紹 選擇語言和長度&#xff1a; 用戶可以在下拉菜單中選擇助記詞的語言&…

uniapp 圖片添加水印代碼封裝(優化版、圖片上傳壓縮、生成文字根據頁面自適應比例、增加文字背景色

uniapp 圖片添加水印代碼封裝(優化版、圖片上傳壓縮、生成文字根據頁面自適應比例、增加文字背景色 多張照片上傳封裝 <template><view class"image-picker"><uni-file-picker v-model"imageValue" :auto-upload"false" :title…

關于服務端接口知識的匯總

大家好&#xff0c;今天給大家分享一下之前整理的關于接口知識的匯總&#xff0c;對于測試人員來說&#xff0c;深入了解接口知識能帶來諸多顯著的好處。 一、為什么要了解接口知識&#xff1f; 接口是系統不同模塊之間交互的關鍵通道。只有充分掌握接口知識&#xff0c;才能…

http-server實現本地服務器

要實現一個本地服務器&#xff0c;你可以使用Node.js的http-server模塊。首先&#xff0c;確保你已經安裝了Node.js和npm。然后&#xff0c;按照以下步驟操作&#xff1a; 打開終端或命令提示符&#xff0c;進入你想要作為服務器根目錄的文件夾&#xff1b;運行以下命令安裝ht…

Axure PR 10 制作頂部下拉三級菜單和側邊三級菜單教程和源碼

在線預覽地址&#xff1a;Untitled Document 2.側邊三級下拉菜單 在線預覽地址&#xff1a;Untitled Document 文件包和教程下載地址&#xff1a;https://pan.quark.cn/s/77e55945bfa4 程序員必備資源網站&#xff1a;天夢星服務平臺 (tmxkj.top)