我們想要使用一棵四叉樹來儲存乙個 n x n 的布林值網路。網路中每一格的值只會是真或假。樹的根結點代表整個網路。對於每個結點, 它將被分等成四個孩子結點直到這個區域內的值都是相同的.
每個結點還有另外兩個布林變數: isleaf 和 val。isleaf 當這個節點是乙個葉子結點時為真。val 變數儲存葉子結點所代表的區域的值。
你的任務是使用乙個四叉樹表示給定的網路。下面的例子將有助於你理解這個問題:
給定下面這個8 x 8 網路,我們將這樣建立乙個對應的四叉樹:
由上文的定義,它能被這樣分割:
對應的四叉樹應該像下面這樣,每個結點由一對 (isleaf, val) 所代表.
對於非葉子結點,val 可以是任意的,所以使用 * 代替。
n 將小於 1000 且確保是 2 的整次冪。
頁面。
1/*2// definition for a quadtree node.
3class node
1213
public node(boolean _val,boolean _isleaf,node _topleft,node _topright,node _bottomleft,node _bottomright)
21};
22*/
23class
solution
2728
public node build(int grid,int x,int y,int
len)38}
39}40return
new node(grid[x][y]==1,true,null,null,null,null
);41
}42 }
427 建立四叉樹
我們想要使用一棵四叉樹來儲存乙個n x n的布林值網路。網路中每一格的值只會是真或假。樹的根結點代表整個網路。對於每個結點,它將被分等成四個孩子結點直到這個區域內的值都是相同的.每個結點還有另外兩個布林變數 isleaf和val。isleaf當這個節點是乙個葉子結點時為真。val變數儲存葉子結點所代...
LeetCode 558 四叉樹交集(遞迴)
四叉樹是一種樹資料,其中每個結點恰好有四個子結點 topleft topright bottomleft 和 bottomright。四叉樹通常被用來劃分乙個二維空間,遞迴地將其細分為四個象限或區域。我們希望在四叉樹中儲存 true false 資訊。四叉樹用來表示 n n 的布林網格。對於每個結點...
leetCode 四叉樹和兩數求和筆記
四叉樹考察了遞迴,我一直對遞迴的思想不是特別理解,最後還是看了其他人的題解才寫出來。具體是每次都比較兩個四叉樹的相同節點,如果兩個都是葉子節點,且其中有乙個的val為true 則返回該節點。若都是葉節點,但是其中乙個是false,則返回另乙個節點。如果兩個節點都不是葉節點,則依次比較它們的相同位置節...