給定乙個非空特殊的二叉樹,每個節點都是正數,並且每個節點的子節點數量只能為 2 或 0。如果乙個節點有兩個子節點的話,那麼這個節點的值不大於它的子節點的值。
給出這樣的乙個二叉樹,你需要輸出所有節點中的第二小的值。如果第二小的值不存在的話,輸出 -1 。
示例 1:
輸入:
2
/ \2 5
/ \5 7
輸出:5
說明:最小的值是 2 ,第二小的值是 5 。
示例 2:
輸入:
2
/ \2 2
輸出:-1
說明:最小的值是 2, 但是不存在第二小的值。
分析:用fir表示最小值,用sec表示第二小值,先序遍歷每個節點,若小於等於fir則更新fir;若大於fir,小於sec則更新sec。結果要和int_max比較,取最小值。要注意的是root節點為空或其左右孩子為空的情況。
/**
* definition for a binary tree node.
* struct treenode
* };
*/class solution
void
preord
(treenode* root,
int&fir,
int&sec)
};
二叉樹中第二小的節點
題目 二叉樹中第二小的節點 力扣 671 給定乙個非空特殊的二叉樹,每個節點都是正數,並且每個節點的子節點數量只能為 2 或 0。如果乙個節點有兩個子節點的話,那麼該節點的值等於兩個子節點中較小的乙個。給出這樣的乙個二叉樹,你需要輸出所有節點中的第二小的值。如果第二小的值不存在的話,輸出 1 分析根...
leetcode 671 二叉樹中第二小的節點
給定乙個非空特殊的二叉樹,每個節點都是正數,並且每個節點的子節點數量只能為2或0。如果乙個節點有兩個子節點的話,那麼這個節點的值不大於它的子節點的值。給出這樣的乙個二叉樹,你需要輸出所有節點中的第二小的值。如果第二小的值不存在的話,輸出 1 示例 1 輸入 2 2 5 5 7 輸出 5 說明 最小的...
LeetCode 671 二叉樹中第二小的節點
題目描述 給定乙個非空特殊的二叉樹,每個節點都是正數,並且每個節點的子節點數量只能為 2 或 0。如果乙個節點有兩個子節點的話,那麼這個節點的值不大於它的子節點的值。給出這樣的乙個二叉樹,你需要輸出所有節點中的第二小的值。如果第二小的值不存在的話,輸出 1 示例 1 輸入 2 2 5 5 7 輸出 ...