給定一棵二叉搜尋樹,請找出其中第k大的節點。
示例 1:
輸入: root = [3,1,4,null,2], k = 1
3/ \
1 4
\ 2
輸出: 4
示例 2:
輸入: root = [5,3,6,2,4,null,null,1], k = 3
5/ \
3 6
/ \2 4
/ 1輸出: 4
限制:
題解:中文力扣中的題意和書上的不太一致,書上是輸出從小到大的第k個數,力扣上輸出從大到小的第k個數。
所以在力扣上的話要將中序遍歷的順序改一下,改為右-中-左的順序進行遍歷。當到達第k個數的時候就是目標值。
/**
* definition for a binary tree node.
* struct treenode
* };
*/class solution
void inorder(treenode* root, int& k)
k = k-1;
if(root->left != nullptr)
inorder(root->left,k);
}};
54 二叉搜尋樹的第k大節點
給定一棵二叉搜尋樹,請找出其中第k大的節點。示例 1 輸入 root 3 1,4 null,2 k 13 1 4 2輸出 4 示例 2 輸入 root 5 3,6 2,4 null,null,1 k 35 3 6 24 1輸出 4限制 二叉搜尋樹的中序遍歷就是有序的,故中序遍歷後取出倒數第k個元素即...
二叉搜尋樹 BST 的第k大節點
給定一顆二叉搜尋樹,請找出其中的第k大的結點。例如,5 3 7 2 4 6 8 中,按結點數值大小順序第三個結點的值為4。利用bst中序有序的性質 coding utf 8 class treenode def init self,x self.val x self.left none self.r...
劍指 Offer 54 二叉搜尋樹的第k大節點
給定一棵二叉搜尋樹,請找出其中第k大的節點。方法一 中序遍歷,然後取值 二叉搜尋數中序遍歷的結果就是乙個有序陣列,演算法也很容易寫。這裡使用了arraylist類 definition for a binary tree node.public class treenode class soluti...