題目描述:
給定乙個非空特殊的二叉樹,每個節點都是正數,並且每個節點的子節點數量只能為 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 說明 最...