LeetCode 671 二叉樹中第二小的節點

2021-09-25 15:02:28 字數 1134 閱讀 5692

題目描述:

給定乙個非空特殊的二叉樹,每個節點都是正數,並且每個節點的子節點數量只能為 2 或 0。如果乙個節點有兩個子節點的話,那麼這個節點的值不大於它的子節點的值。 

給出這樣的乙個二叉樹,你需要輸出所有節點中的第二小的值。如果第二小的值不存在的話,輸出 -1 。

示例 1:

輸入:

2/ \

2 5

/ \5 7

輸出: 5

說明: 最小的值是 2 ,第二小的值是 5 。

示例 2:

輸入:

2/ \

2 2

輸出: -1

說明: 最小的值是 2, 但是不存在第二小的值。

思路:一種很容易想到的方法。遍歷二叉樹,將節點存放到set中,判斷set的大小,根據大小,輸出結果

思想:查詢樹中第二小的數字。遍歷樹,分3中情況

1、如果是乙個空樹,則直接返回-1,說明不存在第二小的數字

2、判斷當前樹的根節點值是否等於最原始的根節點值,如果不等,說明就是第二小的數字(有題目性質可得這一結論)

3、遍歷左右子樹,根據左右子樹的情況,返回第二小的數字

leetcode 671 二叉樹中第二小的節點

給定乙個非空特殊的二叉樹,每個節點都是正數,並且每個節點的子節點數量只能為2或0。如果乙個節點有兩個子節點的話,那麼這個節點的值不大於它的子節點的值。給出這樣的乙個二叉樹,你需要輸出所有節點中的第二小的值。如果第二小的值不存在的話,輸出 1 示例 1 輸入 2 2 5 5 7 輸出 5 說明 最小的...

LeetCode 671 二叉樹中第二小的節點

給定乙個非空特殊的二叉樹,每個節點都是正數,並且每個節點的子節點數量只能為 2 或 0。如果乙個節點有兩個子節點的話,那麼這個節點的值不大於它的子節點的值。給出這樣的乙個二叉樹,你需要輸出所有節點中的第二小的值。如果第二小的值不存在的話,輸出 1 示例 1 輸入 2 2 5 5 7 輸出 5 說明 ...

671 二叉樹中第二小的節點

給定乙個非空特殊的二叉樹,每個節點都是正數,並且每個節點的子節點數量只能為 2 或 0。如果乙個節點有兩個子節點的話,那麼這個節點的值不大於它的子節點的值。給出這樣的乙個二叉樹,你需要輸出所有節點中的第二小的值。如果第二小的值不存在的話,輸出 1 示例 1 輸入 2 2 5 5 7輸出 5 說明 最...