每日算法練習20200328

每天做一道算法題,循序漸進,按算法分類刷題。堅持下去,看能堅持多久,也看最終能有多大成效。

驗證二叉搜索樹

給定一個二叉樹,判斷其是否是一個有效的二叉搜索樹。

假設一個二叉搜索樹具有如下特徵:

  • 節點的左子樹只包含小於當前節點的數。
  • 節點的右子樹只包含大於當前節點的數。
  • 所有左子樹和右子樹自身必須也是二叉搜索樹。

示例 1:

<code>輸入:
2
/ \\
1 3
輸出: true
/<code>

示例 2:

<code>輸入:
5
/ \\
1 4
  / \\

  3 6
輸出: false
解釋: 輸入為: [5,1,4,null,null,3,6]。
  根節點的值為 5 ,但是其右子節點值為 4 。/<code>

解決方案

當根節點為null時返回true。遞歸驗證左子樹,左子樹的所有節點都小於根節點。遞歸驗證右子樹,右子樹的所有節點都大於根節點。

實現代碼


每日算法練習20200328


分享到:


相關文章: