Leetcode No.144 **
阿新 • • 發佈:2019-05-12
ref 得到 中序 div tac preorder 系統 二叉樹遍歷 sta
給定一個二叉樹,返回它的 前序 遍歷。
示例:
輸入: [1,null,2,3] 1 2 / 3 輸出: [1,2,3]
如圖輸出為:ABDECF
解答:參考博客:http://www.cnblogs.com/grandyang/p/4146981.html
前序遍歷、中序遍歷、後序遍歷是一個系統性的二叉樹遍歷算法,分別在No.144、No.94、No.145。
本題依舊可以使用棧來處理。棧是先進後出,而前序遍歷的優先級是先左後右,故先壓棧右側指針,再壓棧左側指針。依次循環,最後會得到最左側值,最後得到最右側值,滿足前序遍歷的條件。
//144 vector<int> preorderTraversal(TreeNode* root) { vector<int> res; if(root==NULL) return res; TreeNode* p; stack<TreeNode*> st; st.push(root); while(!st.empty()) { p = st.top(); st.pop(); res.push_back(p->val);if(p->right!=NULL) st.push(p->right); if(p->left!=NULL) st.push(p->left); } return res; }//144
Leetcode No.144 **