力扣 hot100 Day44

98. 驗證二叉搜索樹

給你一個二叉樹的根節點?root?,判斷其是否是一個有效的二叉搜索樹。

有效?二叉搜索樹定義如下:

????????節點的左子樹只包含?小于?當前節點的數。

????????節點的右子樹只包含?大于?當前節點的數。

????????所有左子樹和右子樹自身必須也是二叉搜索樹

//自己寫的
class Solution {
public:void inorderHelper(TreeNode* root, vector<int>& result) {if (root == nullptr) return;inorderHelper(root->left, result);result.push_back(root->val);inorderHelper(root->right, result);}bool isValidBST(TreeNode* root) {vector<int> res;inorderHelper(root, res);for (int i = 1; i < res.size(); i++) {if (res[i] <= res[i-1]) {return false;}}return true;}
};

最直接的想法,按中序遍歷排序,如果嚴格升序,就符合要求,能順利實現

//抄的
class Solution {
public:bool isValidBST(TreeNode* root) {return helper(root, LONG_MIN, LONG_MAX);}bool helper(TreeNode* node, long min_val, long max_val) {if (!node) return true;if (node->val <= min_val || node->val >= max_val) {return false;}return helper(node->left, min_val, node->val) && helper(node->right, node->val, max_val);}
};

遞歸做法,需要保證整個左節點樹都小于根節點,右節點大于根節點,所以需要傳遞兩個極值作為范圍。

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

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

相關文章

【基礎架構】——軟件系統復雜度的來源(低成本、安全、規模)

目錄 一、軟件系統復雜度的來源之低成本二、軟件系統復雜度的來源之安全2.1、功能安全2.2、架構安全2.3、規模2.3.1、功能越來越多,導致系統復雜度指數級上升2.3.2、數據越來越多,系統復雜度發生質變本文來源:極客時間vip課程筆記 一、軟件系統復雜度的來源之低成本 當我們設…

機器學習 YOLOv5手繪電路圖識別 手繪電路圖自動轉換為仿真軟件(如LT Spice)可用的原理圖,避免人工重繪

以下是對《手繪電路圖識別》論文的核心解讀&#xff0c;結合技術方案、實驗數據和創新點進行結構化總結&#xff1a;研究目標 解決痛點&#xff1a;將手繪電路圖自動轉換為仿真軟件&#xff08;如LT Spice&#xff09;可用的原理圖&#xff0c;避免人工重繪。 關鍵挑戰&#xf…

一般的非線性規劃求解(非凸函數)

歸納編程學習的感悟&#xff0c; 記錄奮斗路上的點滴&#xff0c; 希望能幫到一樣刻苦的你&#xff01; 如有不足歡迎指正&#xff01; 共同學習交流&#xff01; &#x1f30e;歡迎各位→點贊 &#x1f44d; 收藏? 留言?&#x1f4dd; 每一個裂縫都是為透出光而努力&#x…

CTFHub————Web{信息泄露[Git泄露(Stash、Index)]}

Web 信息泄露 Git泄露 Stash 首先&#xff0c;我們先讀題&#xff0c;由題可知我們可以用BugScanTeam或GitHack完成該題那么我們先開題&#xff0c; 好吧&#xff0c;他問我們flag在哪里&#xff0c;我怎么知道fag在哪里。 先打開GitHack 使用 py GitHack.py http://challenge-…

缺乏實際里程碑管控項目進度,如何設定關鍵節點

要通過實際里程碑管控項目進度&#xff0c;核心措施包括&#xff1a;設定可量化的關鍵節點、明確交付標準與責任人、同步風險與資源計劃、基于階段目標拆解任務、建立節點驗證與復盤機制。例如&#xff0c;設定可量化的關鍵節點能讓團隊清晰理解“何時完成了什么”并及時調整方…

XML E4X:深入解析與高效應用

XML E4X:深入解析與高效應用 引言 XML(可擴展標記語言)作為一種數據交換格式,廣泛應用于互聯網數據傳輸、配置文件、數據存儲等領域。E4X 是一種擴展 XML 的編程接口,允許開發者以編程方式直接訪問和處理 XML 數據。本文將深入探討 XML E4X 的概念、特點、應用場景以及高…

uniapp---入門、基本配置了解

目錄 uniapp 新建項目 uniapp全局配置 組件 1、內置組件 2、擴展 組件 uni-ui 3、第三方組件庫 uview-ui 秋云-ucharts (插件市場 ) scss語法(了解) vue2語法&#xff08;熟悉&#xff09; uniapp 官方文檔&#xff1a;uni-app官網 uni-app 是一個使用 Vue.js 開發所…

springboot 好處

思考1&#xff0c;快速啟動&#xff0c;簡化配置。自動配置&#xff0c;內置tomcat&#xff0c;無需部署war文件&#xff0c;快速創建獨立應用2&#xff0c;提高開發效率&#xff0c;熱部署3&#xff0c;微服務生態4&#xff0c;云原生&#xff0c;Docker K8sSpring Boot 的主要…

SSM框架學習——day1

SSM框架概述SSM框架是Java開發中常用的組合框架&#xff0c;由Spring、Spring MVC和MyBatis三個開源框架整合而成。主要用于構建企業級Web應用程序&#xff0c;具有輕量級、模塊化、易擴展等特點。Spring框架作為核心&#xff0c;提供依賴注入&#xff08;DI&#xff09;和面向…

【html基本界面】

小米界面布局效果htmlcss效果 html <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>小米商城布局<…

【設計模式】適配器模式(包裝器模式),缺省適配器模式,雙向適配器模式

適配器模式&#xff08;Adapter Pattern&#xff09;詳解 一、適配器模式簡介 適配器模式是一種結構型設計模式&#xff0c;它將一個類的接口轉換成客戶端所期望的另一個接口。適配器模式使得原本由于接口不兼容而不能一起工作的那些類可以協同工作。 簡單來說&#xff0c;適配…

安全初級(一)

一.docker的搭建和VPN連接 1.輸入指令&#xff1a;apt-get install docker.io docker-compose 2.設置docker代理&#xff1a;創建文件夾以及對應的文件 /etc/systemd/system/docker.service.d/http-proxy.conf 在該文件中配置自己的代理ip以及代理端口 [Service] Environme…

Java多線程:核心技術與實戰指南

目錄&#x1f680;前言&#x1f914;什么是多線程&#xff1f;&#x1f4bb;創建線程&#x1f4af;創建方法一&#xff1a;繼承Thread類&#x1f4af;創建方法二&#xff1a;實現Runnable接口&#x1f4af;創建方法三&#xff1a;實現Callable接口&#x1f4af;三種方法對比&am…

高斯代數基本定理的一種證明

代數基本定理 對于多項式 f(z)anznan?1zn?1?a1za0f(z) a_n z^n a_{n-1} z^{n-1} \cdots a_1 z a_0f(z)an?znan?1?zn?1?a1?za0?&#xff08;其中 n>1n > 1n>1 且 an,a0≠0a_n, a_0 \neq 0an?,a0?0&#xff09;&#xff0c;它在復數域內有根。 f(z)U…

【K8S】Kubernetes 使用 Ingress-Nginx 基于 Cookie 實現會話保持的負載均衡

文章目錄 1. 創建測試應用 Deployment3. 配置基于 Cookie 的 Ingress4. 部署與測試步驟(1) 應用配置(2) 獲取 Ingress IP(3) 測試會話保持(4) 使用 Nginx 取消域名的限制(僅推薦測試使用)5、生產優化建議6、獨立 Nginx 配置參考在現代微服務架構中,負載均衡是保證高可用的關…

2.查詢操作-demo

在連接數據庫的基礎上步驟&#xff1a;Query-查詢關閉查詢db.Next()逐行輸出&#xff0c;并指定到當前變量Scan-掃描rows, err : db.Query("SELECT id,server_ip FROM softswitch_server_info")package main//查詢語句-demo //關鍵字-queryimport ("database/sq…

用OpenCV標定相機內參應用示例(C++和Python)

下面是一個完整的 使用 OpenCV 進行相機內參標定&#xff08;Camera Calibration&#xff09; 的示例&#xff0c;包括 C 和 Python 兩個版本&#xff0c;基于棋盤格圖案標定。一、目標&#xff1a;相機標定 通過拍攝多張帶有棋盤格圖案的圖像&#xff0c;估計相機的內參&#…

(二)OpenCV——邊緣增強與檢測

邊緣增強與檢測是圖像處理中的核心技術&#xff0c;其核心目標是突出圖像中的不連續區域&#xff08;邊緣&#xff09;&#xff0c;為后續的圖像分析提供基礎。一、基本概念邊緣本質上是圖像中灰度/顏色發生突變的區域&#xff0c;對應著&#xff1a;物體邊界表面方向改變材質變…

018 進程控制 —— 進程等待

&#x1f984; 個人主頁: 小米里的大麥-CSDN博客 &#x1f38f; 所屬專欄: Linux_小米里的大麥的博客-CSDN博客 &#x1f381; GitHub主頁: 小米里的大麥的 GitHub ?? 操作環境: Visual Studio 2022 文章目錄進程控制 —— 進程等待1. 進程等待必要性2. 常用等待方法&#xf…

PHP password_hash() 函數

password_hash() 函數用于創建密碼的散列&#xff08;hash&#xff09;PHP 版本要求: PHP 5 > 5.5.0, PHP 7語法string password_hash ( string $password , int $algo [, array $options ] )password_hash() 使用足夠強度的單向散列算法創建密碼的散列&#xff08;hash&…