449 序列化與反序列化二叉樹

2021-10-24 23:34:44 字數 2692 閱讀 5715

}官方題解:

public stringbuilder postorder

(treenode root, stringbuilder sb)

// encodes a tree to a single string.

public string serialize

(treenode root)

public treenode helper

(integer lower, integer upper, arraydeque

nums)

// decodes your encoded data to tree.

public treenode deserialize

(string data)

}

對題解的兩處地方做解釋:

首先要明白split方法的引數含義

public string split(string regex)根據給定的正規表示式的匹zhi配來拆分此字串。

然後就要明dao確正規表示式的含義了:

\s表示 空格,回車,換行等空白符,

+號表示乙個或多個的意思,所以…

arraydeque類的使用詳解

arraydeque是deque介面的乙個實現,使用了可變陣列,所以沒有容量上的限制。

同時,arraydeque是執行緒不安全的,在沒有外部同步的情況下,不能再多執行緒環境下使用。

arraydeque是deque的實現類,可以作為棧來使用,效率高於stack;

也可以作為佇列來使用,效率高於linkedlist。

需要注意的是,arraydeque不支援null值。

1.新增元素

addfirst

(e e)在陣列前面新增元素

addlast

(e e)在陣列後面新增元素

offerfirst

(e e) 在陣列前面新增元素,並返回是否新增成功

offerlast

(e e) 在陣列後天新增元素,並返回是否新增成功

2.刪除元素

removefirst

()刪除第乙個元素,並返回刪除元素的值,如果元素為null,將丟擲異常

pollfirst

()刪除第乙個元素,並返回刪除元素的值,如果元素為null,將返回null

removelast

()刪除最後乙個元素,並返回刪除元素的值,如果為null,將丟擲異常

polllast

()刪除最後乙個元素,並返回刪除元素的值,如果為null,將返回null

removefirstoccurrence

(object o) 刪除第一次出現的指定元素

removelastoccurrence

(object o) 刪除最後一次出現的指定元素

3.獲取元素

getfirst

() 獲取第乙個元素,如果沒有將丟擲異常

getlast

() 獲取最後乙個元素,如果沒有將丟擲異常

4.佇列操作

add(e e) 在佇列尾部新增乙個元素

offer

(e e) 在佇列尾部新增乙個元素,並返回是否成功

remove

() 刪除佇列中第乙個元素,並返回該元素的值,如果元素為null,將丟擲異常(其實底層呼叫的是removefirst()

)poll

() 刪除佇列中第乙個元素,並返回該元素的值,如果元素為null,將返回null

(其實呼叫的是pollfirst()

)element

() 獲取第乙個元素,如果沒有將丟擲異常

peek

() 獲取第乙個元素,如果返回null

5.棧操作

push

(e e) 棧頂新增乙個元素

pop(e e) 移除棧頂元素,如果棧頂沒有元素將丟擲異常

6.其他

size

() 獲取佇列中元素個數

isempty

() 判斷佇列是否為空

iterator

() 迭代器,從前向後迭代

descendingiterator

() 迭代器,從後向前迭代

contain

(object o) 判斷佇列中是否存在該元素

toarray

() 轉成陣列

clear

() 清空佇列

clone

() 轉殖(複製)乙個新的佇列

449 序列化和反序列化二叉搜尋樹

序列化是將資料結構或物件轉換為一系列位的過程,以便它可以儲存在檔案或記憶體緩衝區中,或通過網路連線鏈路傳輸,以便稍後在同乙個或另乙個計算機環境中重建。設計乙個演算法來序列化和反序列化二叉搜尋樹。對序列化 反序列化演算法的工作方式沒有限制。您只需確保二叉搜尋樹可以序列化為字串,並且可以將該字串反序列化...

449 序列化和反序列化二叉搜尋樹

序列化是將資料結構或物件轉換為一系列位的過程,以便它可以儲存在檔案或記憶體緩衝區中,或通過網路連線鏈路傳輸,以便稍後在同乙個或另乙個計算機環境中重建。設計乙個演算法來序列化和反序列化 二叉搜尋樹 對序列化 反序列化演算法的工作方式沒有限制。您只需確保二叉搜尋樹可以序列化為字串,並且可以將該字串反序列...

449 序列化和反序列化二叉搜尋樹

序列化是將資料結構或物件轉換為一系列位的過程,以便它可以儲存在檔案或記憶體緩衝區中,或通過網路連線鏈路傳輸,以便稍後在同乙個或另乙個計算機環境中重建。設計乙個演算法來序列化和反序列化 二叉搜尋樹 對序列化 反序列化演算法的工作方式沒有限制。您只需確保二叉搜尋樹可以序列化為字串,並且可以將該字串反序列...