671 二叉樹中第二小的節點

2021-08-28 10:40:38 字數 896 閱讀 5685

給定乙個非空特殊的二叉樹,每個節點都是正數,並且每個節點的子節點數量只能為 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 輸出 ...