Leetcode94.Binary_Tree_Inorder_Traversal
阿新 • • 發佈:2018-11-20
二叉樹的中序遍歷的遞迴解法是顯然的,這裡只列出非遞迴演算法。優先對左兒子向下搜尋,搜尋到盡頭則將其值儲存,再嘗試向右搜尋。
時間複雜度:O(N)(N為節點數)
C++程式碼:
class Solution { public: vector<int> inorderTraversal(TreeNode* root) { vector<int> result; stack<TreeNode*> record; TreeNode* temp = root; while (temp != nullptr || !record.empty()) { while (temp != nullptr) { record.push(temp); temp = temp->left; } if (!record.empty()) { temp = record.top(); record.pop(); result.push_back(temp->val); temp = temp->right; } } return result; } };