網上有好多教程,看的我很頭大。經過朋友的講解,豁然頓悟。廢話不說。
要做對這道題,首先就是先要搞懂折半查詢樹是怎樣的構建的過程,折半查詢,顧名思義,就是通過一次次的折半,來構建樹,小的放左邊,大的放右邊。
構建樹,肯定要先有根節點。沒有問題吧。所以說先要折半。折半的還有問題,要麼正好是中點,要麼需要向上取整或者向下取整。
這時候,你就會發現了,只能存在兩種情況,要麼取中點和向上取整,要麼取中點和向下取整,這是為什麼呢?因為我們資料有偶數和奇數之分的吧。明白了吧。
看圖,很懵,所以來點資料,沒有問題吧。那資料要誰?要多少呢?接下來,我們看選項,a選項,不要真看,你要數。是不1個根節點,左邊有5個節點,右邊有四個。總共10個節點。其他的自己數!b總共11,c總共9,d總共10。要多少我們解決了,給誰呢?
對就1,2,3,4,5,6,7,8,9,10,11。
來看a:
然後你在看選項,是不答案就出來了。這個辦法有點慢,你可以看左右子樹。
二叉樹 判斷二叉樹是否為完全二叉樹
問題描述 判斷一棵二叉樹是否為完全二叉樹。知識點 完全二叉樹是指除二叉樹的最後一層外,其他各層的節點數達到最大個數,且最後一層的葉節點從左到右連續存在,只缺右側若干節點。演算法實現 class node is complete binary tree public static boolean is...
判斷二叉樹是否為平衡二叉樹
一 線性思維 遍歷每個節點都時候,求左右子樹的深度,如果左右子樹深度相差不超過1,繼續遞迴遍歷左右節點,此種方法會重複遍歷,時間效率不高 is balanced t if t is null return true left treedepth t.left right treedepth t.ri...
判斷二叉樹是否為平衡二叉樹
題目 平衡二叉樹的性質為 要麼是一棵空樹,要麼任何乙個節點的左右子樹高度差的絕對值不超過1。給定一棵二叉樹的頭結點head,判斷這棵二叉樹是否為平衡二叉樹。要求 如果二叉樹的節點數為n,要求時間複雜度為o n 判斷二叉樹是否為二叉樹 public boolean isbalance node hea...