binary-tree-preorder-traversal 迭代法求解二叉樹前序遍歷
阿新 • • 發佈:2020-07-06
題目:
求給定的二叉樹的前序遍歷。 例如: 給定的二叉樹為{1,#,2,3}, 1 2 / 3 返回:[1,2,3]程式碼:
1 /** 2 * struct TreeNode { 3 * int val; 4 * struct TreeNode *left; 5 * struct TreeNode *right; 6 * }; 7 */ 8 9 class Solution { 10 public: 11 /** 12 * 13 * @param root TreeNode類 14 * @return int整型vector15 */ 16 vector<int> preorderTraversal(TreeNode* root) { 17 vector<int> list; 18 stack<TreeNode*> st; 19 if(root == NULL) 20 return list; 21 st.push(root); 22 while( !st.empty()) { 23 TreeNode* temp = st.top();24 st.pop(); 25 list.push_back(temp->val); 26 if(temp->right != NULL) 27 st.push(temp->right); 28 if(temp->left != NULL) 29 st.push(temp->left); 30 } 31 return list; 32 } 33 };
我的筆記:
利用資料結構棧來求解即可。