題目描述:
給定乙個二叉搜尋樹,編寫乙個函式 kthsmallest 來查詢其中第 k 個最小的元素。
說明:你可以假設 k 總是有效的,1 ≤ k ≤ 二叉搜尋樹元素個數。
使用中序遍歷取第k-1個即可
**:
public int kthsmallest(treenode root, int k)
public void gettem(treenode node,listlist)
gettem(node.left, list);
list.add(node.val);
gettem(node.right, list);
}
當然我們不需要遍歷整個二叉搜尋樹,只需要一部分即可,我們計算左子樹和右子樹的數目與m的關係
進行遞迴遍歷
class solution else if (leftsum+1 > k) else if (leftsum+1 < k)
return root.val;
}public int sumtree(treenode root)
return 1+sumtree(root.left)+sumtree(root.right);}}
二叉搜尋樹第K小元素
1.思路 迭代法 計算出二叉樹左節點的個數,如果左節點的個數等於k 1 則根節點就是我們要找的值,如果左節點的個數大於k 1,表明我們要查詢的第k個最小元素在左子樹中,如果左節點的個數小於k 1,表明要查詢的第k個最小元素在右子節點中,找到右子樹中第k count left 1個元素就是我們要找的元...
二叉搜尋樹中第K小的元素
目錄 1 題目描述 2 題目分析 3 實現 3.1 中序遍歷方法 3.2 結點計數方法 給定乙個二叉搜尋樹,編寫乙個函式kthsmallest來查詢其中第k個最小的元素。說明 你可以假設 k 總是有效的,1 k 二叉搜尋樹元素個數。示例 1 輸入 root 3,1,4,null,2 k 1 3 1 ...
二叉搜尋樹中第K小的元素
給定乙個二叉搜尋樹,編寫乙個函式 kthsmallest 來查詢其中第 k 個最小的元素。說明 你可以假設 k 總是有效的,1 k 二叉搜尋樹元素個數。對二叉搜尋樹進行中序遍歷,將遍歷後的結果存到陣列中,陣列中的第k個元素就是二叉搜尋樹的第k小元素,因為二叉搜尋樹中序遍歷後得到的結果就是得到的結果就...