劍指offer54 二叉樹的第K大節點

2021-10-24 07:59:33 字數 587 閱讀 5291

二叉樹的遍歷方式如何寫:

oid middlesearch

(treenode* tr,stack<

int>

&stack)

}

就是乙個中序遍歷,左子樹走到頭,存一下,看看葉節點有沒右子樹,都沒有返回父節點,看看有沒有兒子。

然後就是二叉搜尋樹,左兒子都比老子小,右兒子都比老子大。

所以中序遍歷的結果就是有序的乙個數列,使用堆疊,pop n-1個就是答案

/**

* definition for a binary tree node.

* struct treenode

* };

*/class solution

}int

kthlargest

(treenode* root,

int k)

return stack.

top();}};

劍指offer 54 二叉搜尋樹的第K大結點

給定一棵二叉搜尋樹,請找出其中第k大的結點。include includetypedef int datatype typedef struct bstreenodebstreenode 建立二叉搜尋樹 int bstreeinsert2 bstreenode root,datatype key i...

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

給定一棵二叉搜尋樹,請找出其中第k大的節點。方法一 中序遍歷,然後取值 二叉搜尋數中序遍歷的結果就是乙個有序陣列,演算法也很容易寫。這裡使用了arraylist類 definition for a binary tree node.public class treenode class soluti...

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

劍指 offer 54.二叉搜尋樹的第k大節點 給定一棵二叉搜尋樹,請找出其中第k大的節點。輸入 root 3,1,4,null,2 k 1 輸出 4 二叉搜尋樹,若任意節點的左子樹不空,則左子樹上所有節點的值均小於它的根節點的值 若任意節點的右子樹不空,則右子樹上所有節點的值均大於它的根節點的值 ...