給定一棵二叉搜尋樹,請找出其中的第k小的結點。例如, (5,3,7,2,4,6,8) 中,按結點數值大小順序第三小結點的值為4。
前提:
什麼是二叉搜尋樹性質:左邊的子樹都比根節點小,右邊的都比它大思路:有了上面的前提,我們要尋找第k個小的節點的話,那麼就是中序遍歷了第幾個元素
把問題轉化成了二叉搜尋樹的遍歷,然後用個index計算是否等於k
遞迴層層遞進,從最左開始找上來
/*
public class treenode }*/
//找到第三個正常是3
// 5
// 3 9
// 2 4 7 10
// 1
// null
public
class
solution
if(proot!=null)
return null;
}}
劍指offer 61平衡二叉樹
輸入一棵二叉樹,判斷該二叉樹是否是平衡二叉樹。題解 方法一 使用深度遍歷,判斷每個節點是不是平衡二叉樹,這種從上至下的方法會導致底層的節點重複判斷多次 方法二 使用後序遍歷判斷,這種方法為自下而上,每個節點只需要判斷一次即可 1 方法一 使用深度遍歷,判斷每個節點是不是平衡二叉樹,這種從上至下的方法...
劍指offer(61)序列化二叉樹
請實現兩個函式,分別用來序列化和反序列化二叉樹 首先拿到題目時候,我先想到的是什麼是序列化二叉樹?序列化主要就是在前後端互動時候需要轉換下,畢竟網路傳輸的是流式資料 二進位制或者文字 而不是物件。所以序列化二叉樹就是轉化成字串。之前解決重建二叉樹問題時候,我們可以知道,兩個遍歷序列就可以確定一顆二叉...
劍指Offer 61 序列化二叉樹
請實現兩個函式,分別用來序列化和反序列化二叉樹 使用前序遍歷,將遇到的結點新增到字串中,遇到null則將乙個 新增要序列化字串中。反序列化時,每次讀取根結點,然後讀取其左結點,遇到 null 時,返回上層。樹結點定義 public class treenode 實現 public class sol...