給定一棵二叉搜尋樹,請找出其中的第k小的結點。例如, (5,3,7,2,4,6,8) 中,按結點數值大小順序第三小結點的值為4。
非遞迴中序遍歷(nice)
treenode kthnode(treenode root, int k)else
}while(node!=null||!stack.isempty());
return null;
}
最好理解:
/*
struct treenode
};*/
class solution
//中序遍歷,將節點依次壓入vector中
void inorder(treenode* proot,vector& vec)
};
inorder函式裡的vector沒加引用,跑不出來的原因是:
加引用說明使用的是同乙個vec,不加引用會拷貝傳值,後面vec改變也不會改變前面的vec。
62 劍指offer 二叉搜尋樹的第k個結點
題目描述 給定一顆二叉搜尋樹,請找出其中的第k大的結點。例如,5 3 7 2 4 6 8 中,按結點數值大小順序第三個結點的值為4。解題思路 使用中序遍歷進行遍歷,得到的就是按照順序的,當遍歷到第k個就輸出即可。1 2 struct treenode 9 10 11class solution 21...
劍指offer 二叉樹 二叉樹搜尋樹
package bst import j a.util.public class bst if pre.length 0 in.length 0 treenode root new treenode pre 0 for int i 0 i in.length i return root 判斷給定陣列...
劍指Offer62 二叉搜尋樹的第k個結點
給定一棵二叉搜尋樹,請找出其中的第k小的結點。例如,5,3,7,2,4,6,8 中,按結點數值大小順序第三小結點的值為4。思路 coding utf 8 class treenode def init self,x self.val x self.left none self.right none ...