二叉樹題型框架4

二叉搜索樹

性質:
1.對於BST的每個節點node,左子樹節點的值都比node的值要小,右子樹的值都比node的值大
2.對於BST的每個節點node,它的左側子樹和右側子樹都是BST。
從算法題的角度來看BST,除了它的定義,還有一個重要的性質:BST的中序遍歷結果是有序的node

void traverse(TreeNode root){
if(root==null){
return;
}
traverse(root.left);
//中序遍歷代碼位置
print(root.val);
traverse(root.right);
}

尋找第K小的元素\

考慮每一個根節點須要幹什麼,節點須要遍歷本身時就將rank值加1,表明遍歷到了第rank小的節點算法

int res=0;
int rank=0;

int kthSmallest(TreeNode root,int k){
traverse(root,k);
return res;
}

二叉搜索樹轉換爲累加樹

節點須要將本身的值更新爲res,res表明當前從大到小的節點值的和code

public void traverse(TreeNode root){
if(root==null){
return;
}

traverse(root.right);
res+=root.val;
root.val=res;
traverse(root.left);
}
相關文章
相關標籤/搜索