LeetCode 94 二叉樹的中序遍歷

2021-09-17 01:31:18 字數 898 閱讀 5312

給定乙個二叉樹,返回它的中序 遍歷。

示例:

輸入:[1,null,2,3]1\

2/

3輸出:[1,3,2]

高階:遞迴演算法很簡單,你可以通過迭代演算法完成嗎?

遞迴解法,先從根節點的左孩子中序遍歷,再訪問根節點,最後從根節點的右孩子中序遍歷。遞迴基是當節點為空時,返回。

/**

* definition for a binary tree node.

* struct treenode

* };

*/class solution

void inorder(treenode* root, vector& ans)

};

迭代解法,建立乙個棧,用來儲存已經經過但還未遍歷到的節點,先從根節點開始一直找左孩子,期間把每乙個節點都壓入棧,直到節點為空為止。這時從棧頂彈出乙個節點,然後訪問他,之後從他的右孩子開始,一直找左孩子,也是期間把每乙個節點都壓入棧,直到節點為空為止。如此迴圈,直到最後右孩子為空並且棧也為空時,中序遍歷結束。返回ans。

/**

* definition for a binary tree node.

* struct treenode

* };

*/class solution

treenode* temp = s.top();

s.pop();

ans.push_back(temp->val);

cur = temp->right;

}return ans;

}};

LeetCode 94 中序遍歷二叉樹

傳送門 給定乙個二叉樹,返回其中序遍歷。例如 給定二叉樹 1,null,2,3 1 2 3返回 1,3,2 說明 遞迴演算法很簡單,你可以通過迭代演算法完成嗎?題中說明了要求使用迭代法 使用乙個棧來儲存二叉樹節點,根據中序遍歷的規則,我們可以推算出這樣的規律 1.將當前非空節點入棧 2.如果左子節點...

LeetCode94 二叉樹中序遍歷

題目描述 給定乙個二叉樹,返回它的中序 遍歷。示例 輸入 1,null,2,3 1 2 3輸出 1,3,2 c 實現 遞迴實現 definition for a binary tree node.struct treenode class solution void helper treenode ...

LeetCode(94) 二叉樹的中序遍歷

提交 class solution return arr 這題是用的c 因為它要用乙個陣列來儲存遍歷的數。用c太麻煩了。提交 class solution if s.empty true return arr 參考 演算法思想 根據中序遍歷的順序,對於任一結點,優先訪問其左孩子,而左孩子結點又可以看...