package project;
/** * 題目:二叉搜尋樹的第k個結點。
* 給定一棵二叉搜尋樹,請找出其中的第k小的結點。
* 例如(5,3,7,2,4,6,8)中,按結點數值大小順序第三小結點的值為4。
* @author hexiaoli
* 思路:劍指offer
*二叉搜尋樹:左子結點的值 < 根結點的值 < 右子結點的值。
二叉搜尋樹中序遍歷序列為遞增序列,所以中序遍歷到第k個結點即為第k小的結點。
*/class treenode
}public class main
index++;
//判斷是不是第k個節點
if (index == k)
//找到根節點的右孩子
node = kthnode(proot.right,k);
if(node !=null)
} return null;
} public static void main(string args)
}
劍指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 ...
劍指offer62 二叉搜尋樹的第k個結點
給定一棵二叉搜尋樹,請找出其中的第k小的treenode結點。思路1 最直接的,我們知道將一棵二叉搜尋樹進行中序遍歷,得到的結果就是公升序排列的,這樣就能輕鬆找到了。實現 class solution treenode kthnode treenode proot,int k 仔細想想上面的實現,不...
劍指offer(62)二叉搜尋樹的第K個節點
給定一棵二叉搜尋樹,請找出其中的第k小的結點。例如,5,3,7,2,4,6,8 中,按結點數值大小順序第三小結點的值為4。首先,我們可以先畫圖。畫完圖後我們要想辦法從中找出第k小的節點。因為這是二叉搜尋樹,我們可以輕易發現它的中序遍歷序列就是從小到大排列,也就是我們可以直接中序遍歷,同時計數,就可以...