Leetcode 427 建立四叉樹

2021-09-24 14:50:05 字數 1106 閱讀 4860

我們想要使用一棵四叉樹來儲存乙個 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,則返回另乙個節點。如果兩個節點都不是葉節點,則依次比較它們的相同位置節...