前序: 根->左->右
遞迴實現:
public
class solution
return result;
}}
非遞迴實現:
建立乙個棧,把 root 結點入棧。
棧不為空時就執行下面的流程。
2.1. 從棧中彈出乙個元素,並輸出這個元素。
2.2. 把彈出元素的右子結點入棧。
2.3. 把彈出元素的左子結點入棧。
public
class solution
stackstack = new stack();
treenode runnode = root;
while(stack.count > 0 || runnode != null)
else
}return result;
}}
二叉樹前序遍歷
樹的前序遍歷 根左右 可以設計乙個棧來實現 首先讓根root入棧,然後root出棧,pop掉棧頂的元素,列印root,然後把root的右孩子入棧,左孩子入棧,讓棧頂的元素變成新的root,pop掉棧頂的元素,列印root,然後把root的右孩子入棧,左孩子入棧,重複此步驟 include inclu...
leetcode617 合併二叉樹 前序遍歷
給定兩個二叉樹,想象當你將它們中的乙個覆蓋到另乙個上時,兩個二叉樹的一些節點便會重疊。你需要將他們合併為乙個新的二叉樹。合併的規則是如果兩個節點重疊,那麼將他們的值相加作為節點合併後的新值,否則不為 null 的節點將直接作為新二叉樹的節點。示例 1 輸入 tree 1 tree 2 1 2 3 2...
leetcode 331驗證二叉樹前序序列化(棧)
difficulty 中等 序列化二叉樹的一種方法是使用前序遍歷。當我們遇到乙個非空節點時,我們可以記錄下這個節點的值。如果它是乙個空節點,我們可以使用乙個標記值記錄,例如 9 3 2 4 1 6 例如,上面的二叉樹可以被序列化為字串 9,3,4,1,2,6,其中 代表乙個空節點。給定一串以逗號分隔...