54 二叉搜尋樹的第k大節點

2021-10-03 17:42:41 字數 749 閱讀 7133

給定一棵二叉搜尋樹,請找出其中第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...