二叉搜索樹判定

  • leetcode的原文鏈接
  • 樹的定義

?C++版本

  • 需要給每一個節點的數值劃分范圍
  • 若任意節點的左子樹不空,則左子樹上所有結點的值均小于它的根結點的值;
  • 任意節點的右子樹不空,則右子樹上所有結點的值均大于它的根結點的值;
  • 任意節點的左、右子樹也分別為二叉查找樹;
  • 沒有鍵值相等的節點。

image.png

?

bool isValidBST_children(TreeNode* root,long min_value,long max_value){if (root == nullptr){return true;}if (root->val >= max_value || root->val <= min_value){return false;}return isValidBST_children(root->left,min_value,root->val) &&isValidBST_children(root->right,root->val,max_value);}
bool isValidBST(TreeNode* root) {return isValidBST_children(root,INTMAX_MIN,INTMAX_MAX);
}中序遍歷版本class Solution {
public:bool isValidBST(TreeNode* root) {stack<TreeNode*> stack;long long inorder = (long long)INT_MIN - 1;while (!stack.empty() || root != nullptr) {while (root != nullptr) {stack.push(root);root = root -> left;}root = stack.top();stack.pop();// 如果中序遍歷得到的節點的值小于等于前一個 inorder,說明不是二叉搜索樹if (root -> val <= inorder) {return false;}inorder = root -> val;root = root -> right;}return true;}
};作者:LeetCode-Solution
鏈接:https://leetcode-cn.com/problems/validate-binary-search-tree/solution/yan-zheng-er-cha-sou-suo-shu-by-leetcode-solution/
來源:力扣(LeetCode)
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。

?

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

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

相關文章

王道考研 計算機網絡3 速率相關的性能指標

速率 指快慢 比特&#xff1a;1/0&#xff08;1位比特&#xff09; 速率&#xff1a;單位換算1000倍&#xff08;小寫b&#xff09;&#xff0c;如&#xff0c;b/s比特每秒&#xff1b;kb/s千比特每秒 存儲容量&#xff1a;單位換算1024倍(大寫B)&#xff0c;如B字節&#xf…

C++ limits頭文件的用法numeric_limits

參考鏈接 Cplus plus參考鏈接numeric_limits<double>::max ()是函數&#xff0c;返回編譯器允許的 double 型數 最大值。類似的 numeric_limits<int>::max () 返回 編譯器允許的 int 型數 最大值。需包含頭文件 #include <limits> imits是STL提供的頭文件&…

Linux系統運維1 運維 項目研發 網站 服務器 計算機基礎 Linux操作系統

運維的基本概念 運維行業前景 企業運作模式 四大部門 項目研發流程 職責描述&#xff1a; 運維的作用&#xff1a; 網站的相關概念 網站運行流程&#xff1a; IP<–>域名 重要概念&#xff1a; 服務器圖片&#xff1a; 服務器&#xff1a;為用戶提供服務的機器&…

Linux 時間函數的使用

頭文件 #include <chrono> #include <functional>namespace hsm { namespace common {class Timer { public:Timer();void reset();long peek_us() const;long peek_ms() const;double peek_msf() const;double record_msf(const std::function<void()> &am…

王道考研 計算機網絡4 速率相關的性能指標

時延 發送時延; 發送時延;10bit 除以10b/s1s 傳播時延&#xff1a; 100 m除以10m/s10s 當信道寬帶提高&#xff08;發送速率&#xff09;&#xff0c;發送時延減少&#xff0c;但并不會提高傳播時延–高速鏈路情況 總&#xff1a; 時延帶寬積 描述數據量&#xff0c;鏈路…

std::chrono::duration_cast時間計算

參考鏈接 std::chrono::duration_cast

王道考研 計算機網絡5 分層結構 協議 服務 接口

引入;發送文件前要準備的工作 分層的基本原則 分層結構中相關的概念 PCISDUPDU 上一層的PDU作為傳給下一層的SDU,傳輸下去 總結

std::future詳解

參考鏈接 cppreference.comC11之std::future對象使用說明

王道考研 計算機網絡6 OSI參考模型和各層作用

計算機網絡分層結構 OSI參考模型發展史 OSI參考模型 記憶&#xff1a;一個叫淑惠的女生試用物聯網 OSI參考模型解釋通信過程 具體操作 H代表頭部 數據鏈路層;加了頭部H2和尾部T2 物理層對數據不再處理 類似包裹;打包和拆包 應用層 如果可以不聯網也能使用的程序就不屬于…

std::reserves使用

參考鏈接 C容器使用reserve的重要性&#xff0c;以及如何釋放多余內存關于vector的擴容機制

王道考研 計算機網絡7 TCP/IP參考模型

OSI參考模型和TCP/IP參考模型 osi:理論 tcp/ip:實踐 相同點 不同點 ip無連接 5層參考模型&#xff08;考研&#xff09; TCP/IP協議群 5層參考模型的數據封裝與解封裝 總結 ![

C++ std::iota遞增

參考鏈接 std::iotastd::iota用法學習劍指 Offer 17. 打印從1到最大的n位數 輸入數字 n&#xff0c;按順序打印出從 1 到最大的 n 位十進制數。比如輸入 3&#xff0c;則打印出 1、2、3 一直到最大的 3 位數 999。 示例 1: 輸入: n 1 輸出: [1,2,3,4,5,6,7,8,9] 說明&#…

王道考研 計算機網絡8 物理層基本概念 數據通信相關術語

第二章知識 物理層基本概念 典型的數據通信模型 數據通信相關術語 三種通信方式 兩種傳輸方式 串行&#xff1a;一條信道 并行&#xff1a;多條信道

memory_buffer詳解

參考鏈接 API Reference{fmt}fmt的API介紹&#xff08;版本&#xff1a; 7.0.1&#xff09;

std::tie簡單介紹

參考鏈接 std::tie詳解std::tie

王道考研 計算機網絡9 物理層傳輸介質 雙絞線 同軸電纜 光纖

傳輸介質和分類 傳輸媒體:只會機械地傳輸信號 物理層&#xff1a;能夠根據電壓&#xff0c;識別傳輸的比特流 導向性傳輸介質–雙絞線 在局域網和傳統電話網中使用 電脈沖 導向性傳輸介質–同軸電纜 電脈沖 導向性傳輸介質–光纖 光脈沖 單模光纖與多模光纖 光纖特點 …

王道考研 計算機網絡10 物理層設備 中繼器 集線器

中繼器 再生數字信號 一個端口輸入衰減信號&#xff0c;另一個端口輸出再生和還原信號 媒體&#xff1a;傳輸介質 5-4-3規則&#xff1a; 5個網段 4個中繼器或集線器 只有3個段可以連接計算機 集線器&#xff08;多口中繼器&#xff09; 集線器在一個周期內只能傳輸一組通…

ubuntu apt報錯無法獲得鎖/var/lib/dpkg/lock 和無法鎖定管理目錄

使用命令 sudo rm /var/cache/apt/archives/locksudo rm /var/lib/dpkg/lock使用完上述命令之后&#xff0c;需要關閉當前終端重新打開 參考鏈接 【Ubuntu報錯】E: 無法獲得鎖 /var/lib/dpkg/lock - open (11: 資源暫時不可用)_水亦心的博客-CSDN博客

王道考研 計算機網絡11 數據鏈路層 封裝成幀 透明傳輸 流量控制 停止-等待協議 后退N幀協議GBN 選擇重傳協議SR

第三章知識 數據鏈路層的基本概念 數據鏈路層功能概述 封裝成幀 透明傳輸 什么數據都能傳輸 數據鏈路層的流量控制 流量控制方法 滑動窗口協議&#xff1a; 每一個小格標識一個幀 發送窗口&#xff1a;發送端正在處理的發送的數據 收到一個幀&#xff0c;發送窗口前進一格&…