leetcode刷題日記之驗證二叉搜尋樹

2021-08-18 08:22:46 字數 1197 閱讀 1924

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

乙個二叉搜尋樹有如下定義:

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

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

所有子樹自身必須也是二叉搜尋樹。

示例 1:

2 / \

1 3二叉樹[2,1,3], 返回 true.

示例 2:

1 / \

2 3二叉樹 [1,2,3], 返回 false.

c++解法

/**

* definition for a binary tree node.

* struct treenode

* };

*/class solution

return

true;

}private:

void inorder(treenode* root, vector

&v)

}};

python解法
# definition for a binary tree node.

# class treenode:

# def __init__(self, x):

# self.val = x

# self.left = none

# self.right = none

class

solution:

definorder

(self, root, arr):

if root:

self.inorder(root.left, arr)

arr += [root.val]

self.inorder(root.right, arr)

defisvalidbst

(self, root):

""" :type root: treenode

:rtype: bool

"""arr =

self.inorder(root, arr)

for i in range(1, len(arr)):

if arr[i-1] >= arr[i]:

return

false

return

true

leetcode 刷題日記

將兩個有序鍊錶合併為乙個新的有序鍊錶並返回。新煉表是通過拼接給定的兩個鍊錶的所有節點組成的。採用乙個帶頭節點的指標head鏈結合併後的新指標,乙個空指標pre進行迴圈載入兩個鍊錶中的節點比較兩個鍊錶節點的值,pre指標鏈結較小值的鍊錶的節點,依次遍歷兩個鍊錶,直到乙個為空停止迴圈。複雜度分析 時間複...

leetcode 刷題日記

題目 給出兩個 非空 的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存 一位 數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。解題思路 按照最長鍊錶的長度遍歷兩個...

leetcode刷題日記

給你兩個陣列,arr1 和 arr2,arr2 中的元素各不相同 arr2 中的每個元素都出現在 arr1 中 對 arr1 中的元素進行排序,使 arr1 中項的相對順序和 arr2 中的相對順序相同。未在 arr2 現過的元素需要按照公升序放在 arr1 的末尾。示例 輸入 arr1 2,3,1...