1:遞歸法
vector<int> result;
getValue(TreeNode* root, vector<int>& result) {
if (root != nullptr) {
getValue(root->left, result);
result.emplace_back(root->val);
getValue(root->right, result);
}
2. 迭代法
while (!stack.empty() || root != nullptr) {
// 1. 一直遍歷左子樹 while (root != nullptr) { stack.push(root); root = root -> left; }
// 2. 直到無法遍歷,從stack取出一個值,把value放入vector root = stack.top(); stack.pop();
result.emplace_back(root->val);
// 3. 檢查右子樹,若右子樹有值,則以右子樹為root進行遍歷(步驟1)
// 若右子樹為空,則繼續從stack取值(步驟2)
root = root -> right; }
理解並熟練掌握迭代法!