leetcode 144 --- 二叉树前序遍历
生活随笔
收集整理的這篇文章主要介紹了
leetcode 144 --- 二叉树前序遍历
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1 題目
求給定的二叉樹的前序遍歷。
2 解法
2.1 遞歸解法
2.2 非遞歸解法
前序遍歷,先遍歷根節點,然后遍歷左節點,最后是右節點,所以用棧的方式,先是根節點入棧,然后出棧遍歷,如果該節點有左右節點,那么左右節點入棧(應為右節點先入棧,然后是左節點,因為左節點先遍歷,所以是左節點后入棧).
/*** struct TreeNode {* int val;* struct TreeNode *left;* struct TreeNode *right;* };*/class Solution { public:/*** * @param root TreeNode類 * @return int整型vector*/vector<int> preorderTraversal(TreeNode* root) {// write code herevector<int> res;if (root != nullptr) {stack<TreeNode*> tS;tS.push(root);while (!tS.empty()) {TreeNode* tN = tS.top();tS.pop();res.push_back(tN->val);if (tN->right != nullptr)tS.push(tN->right);if (tN->left != nullptr)tS.push(tN->left);}}return res;} };總結
以上是生活随笔為你收集整理的leetcode 144 --- 二叉树前序遍历的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 民生银行 一码付 php,PHP开心码支
- 下一篇: css练习题4,复习webpack4之C