序列化二叉樹的一種方法是使用前序遍歷。當我們遇到乙個非空節點時,我們可以記錄下這個節點的值。如果它是乙個空節點,我們可以使用乙個標記值記錄,例如 #。
_9_
/ \
3 2
/ \ / \
4 1 # 6
/ \ / \ / \
# # # # # #
例如,上面的二叉樹可以被序列化為字串 "9,3,4,#,#,1,#,#,2,#,6,#,#",其中 # 代表乙個空節點。
給定一串以逗號分隔的序列,驗證它是否是正確的二叉樹的前序序列化。編寫乙個在不重構樹的條件下的可行演算法。
每個以逗號分隔的字元或為乙個整數或為乙個表示 null 指標的 '#' 。
你可以認為輸入格式總是有效的,例如它永遠不會包含兩個連續的逗號,比如 "1,,3" 。
import j**a.util.deque;
import j**a.util.linkedlist;
class solution
if (preorder.charat(i) == ',') else if (preorder.charat(i) == '#')
i++;
} else
int top = stack.pop() - 1;
if (top > 0)
stack.push(2);}}
return stack.isempty();
}}
class solution
if (preorder.charat(i) == ',') else if (preorder.charat(i) == '#') else
slots++; // slots = slots - 1 + 2}}
return slots == 0;
}}
331 驗證二叉樹的前序序列化
序列化二叉樹的一種方法是使用前序遍歷。當我們遇到乙個非空節點時,我們可以記錄下這個節點的值。如果它是乙個空節點,我們可以使用乙個標記值記錄,例如 9 3 2 4 1 6 例如,上面的二叉樹可以被序列化為字串 9,3,4,1,2,6,其中 代表乙個空節點。給定一串以逗號分隔的序列,驗證它是否是正確的二...
331 驗證二叉樹的前序序列化
序列化二叉樹的一種方法是使用前序遍歷。當我們遇到乙個非空節點時,我們可以記錄下這個節點的值。如果它是乙個空節點,我們可以使用乙個標記值記錄,例如 9 3 2 4 1 6 例如,上面的二叉樹可以被序列化為字串 9,3,4,1,2,6,其中 代表乙個空節點。給定一串以逗號分隔的序列,驗證它是否是正確的二...
331 驗證二叉樹的前序序列化
序列化二叉樹的一種方法是使用前序遍歷。當我們遇到乙個非空節點時,我們可以記錄下這個節點的值。如果它是乙個空節點,我們可以使用乙個標記值記錄,例如 例如,上面的二叉樹可以被序列化為字串 9,3,4,1,2,6,其中 代表乙個空節點。給定一串以逗號分隔的序列,驗證它是否是正確的二叉樹的前序序列化。編寫乙...