給定乙個非空特殊的二叉樹,每個節點都是正數,並且每個節點的子節點數量只能為2
或0
。如果乙個節點有兩個子節點的話,那麼這個節點的值不大於它的子節點的值。
給出這樣的乙個二叉樹,你需要輸出所有節點中的第二小的值。如果第二小的值不存在的話,輸出 -1 。
示例 1:
輸入:示例 2:2/ \
2 5
/ \5 7
輸出: 5
說明: 最小的值是 2 ,第二小的值是 5 。
輸入:思路:設定兩個變數傳遞最小值(first)和第二小值(second),並且賦予初始值65535。接下來進行先序遍歷,每到乙個結點,將此結點的值與first和second比較,如果比first小,則把first的值賦給second和當前結點的值賦給first(順序不能反)。如果比first大且比second小,則把當前結點的值賦給second。依次遍歷完所有結點。最後判斷second的值是否改變(是否依然為65535),不變說明沒有第二小值返回-1,否則返回second。2/ \
2 2
輸出: -1
說明: 最小的值是 2, 但是不存在第二小的值。
**:
/**
* definition for a binary tree node.
* struct treenode
* };
*/class solution
void secondmin(treenode *root,int &first,int &second)
else if(root->val>first&&root->valval;
secondmin(root->left,first,second);
secondmin(root->right,first,second);}}
};
LeetCode 671 二叉樹中第二小的節點
題目描述 給定乙個非空特殊的二叉樹,每個節點都是正數,並且每個節點的子節點數量只能為 2 或 0。如果乙個節點有兩個子節點的話,那麼這個節點的值不大於它的子節點的值。給出這樣的乙個二叉樹,你需要輸出所有節點中的第二小的值。如果第二小的值不存在的話,輸出 1 示例 1 輸入 2 2 5 5 7 輸出 ...
LeetCode 671 二叉樹中第二小的節點
給定乙個非空特殊的二叉樹,每個節點都是正數,並且每個節點的子節點數量只能為 2 或 0。如果乙個節點有兩個子節點的話,那麼這個節點的值不大於它的子節點的值。給出這樣的乙個二叉樹,你需要輸出所有節點中的第二小的值。如果第二小的值不存在的話,輸出 1 示例 1 輸入 2 2 5 5 7 輸出 5 說明 ...
671 二叉樹中第二小的節點
給定乙個非空特殊的二叉樹,每個節點都是正數,並且每個節點的子節點數量只能為 2 或 0。如果乙個節點有兩個子節點的話,那麼這個節點的值不大於它的子節點的值。給出這樣的乙個二叉樹,你需要輸出所有節點中的第二小的值。如果第二小的值不存在的話,輸出 1 示例 1 輸入 2 2 5 5 7輸出 5 說明 最...