題目
二叉樹中第二小的節點(力扣:671)
給定乙個非空特殊的二叉樹,每個節點都是正數,並且每個節點的子節點數量只能為 2 或 0。如果乙個節點有兩個子節點的話,那麼該節點的值等於兩個子節點中較小的乙個。
給出這樣的乙個二叉樹,你需要輸出所有節點中的第二小的值。如果第二小的值不存在的話,輸出 -1 。
分析根據題目描述:
最小值一定是根節點。
那麼第二小的值,就是,左、右子樹中,大於根節點的值的較小的那個。
**實現
/**
* 671. 二叉樹中第二小的節點
* @param root
* @return
*/public int findsecondminimumvalue(treenode root)
private int findminvalue(treenode root, int rootval)
if (root.val > rootval)
int l = findminvalue(root.left, rootval);
int r = findminvalue(root.right, rootval);
if (l > rootval && r > rootval)
return math.max(l, r);
}
671 二叉樹中第二小的節點
給定乙個非空特殊的二叉樹,每個節點都是正數,並且每個節點的子節點數量只能為 2 或 0。如果乙個節點有兩個子節點的話,那麼這個節點的值不大於它的子節點的值。給出這樣的乙個二叉樹,你需要輸出所有節點中的第二小的值。如果第二小的值不存在的話,輸出 1 示例 1 輸入 2 2 5 5 7輸出 5 說明 最...
二叉樹 完全二叉樹的節點數
給定一棵完全二叉樹 最後一層所有節點都在最左側,其餘所有層節點數都為2 h 求其節點數。最簡單的方法就是遍歷一遍,把節點數加起來,但時間複雜度太高。以最左邊的路徑長作為二叉樹的高度,對於乙個節點,如果左子樹高度和右子樹高度一樣,說明左子樹為滿二叉樹,此時把其左子樹的節點數計算出來,加入總數,對右子樹...
二叉樹問題 列印二叉樹的邊界節點
問題 給定一棵二叉樹的頭節點,按照如下兩種標準分別實現二叉樹邊界節點的逆時針列印。標準一 1.頭節點為邊界節點 2.葉節點為邊界節點 3.如果節點在其所在層中的最左邊或最右邊,那麼也是邊界節點標準二 1.頭節點為邊界節點 2.葉節點為邊界節點 3.樹左邊界延伸下去的路徑為邊界節點 4.樹右邊界延伸下...