LeetCode基礎 二叉樹 前序遍歷

2021-08-11 08:36:05 字數 484 閱讀 3050

前序: 根->左->右

遞迴實現:

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,其中 代表乙個空節點。給定一串以逗號分隔...