144. 二叉树的前序遍历
注意事项
1、这种可能发生空指针异常的地方一定要进行非空指针判断。
2、迭代法:在左右节点入栈之前,要分别判别非空再入栈,否则将出错。
class Solution {
public:vector<int> preorderTraversal(TreeNode* root) {//迭代法就是用循环进行遍历的方式//由于不知道二叉树的节点个数,因此用的应该是while循环语句vector<int> res;//定义返回的数组stack<TreeNode*> st;if (root == NULL) return res;st.push(root); while (!st.empty()) {TreeNode* node = st.top();st.pop();res.push_back(node->val);if (node->right) st.push(node->right);if (node->left) st.push(node->left);//需要分别判断左右指针不为空,然后各自入栈}return res;}
};