LeetCode 144——二叉树的前序遍历

mac2024-01-28  31

一、题目介绍

给定一个二叉树,返回它的 前序 遍历。

 示例:

输入: [1,null,2,3] 1 \ 2 / 3 输出: [1,2,3]

进阶: 递归算法很简单,你可以通过迭代算法完成吗?

二、解题思路

迭代算法很简单,这里采用迭代算法。迭代算法使用栈来实现。

三、解题代码

class Solution { public: vector<int> preorderTraversal(TreeNode* root) { vector<int> vec; if(root == NULL) return vec; stack<TreeNode*> st; TreeNode* pTemp = root; while(pTemp || !st.empty()) { while(pTemp) //先沿着左子树遍历至叶子节点 { st.push(pTemp); vec.push_back(pTemp->val); pTemp = pTemp->left; } pTemp = st.top()->right; //没有左子树之后遍历右子树 st.pop(); } return vec; } };

四、解题结果

最新回复(0)