日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Leedcode7-binary-tree-postorder-traversal

發布時間:2025/3/15 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Leedcode7-binary-tree-postorder-traversal 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
#include<iostream> #include<vector> #include<stack> using namespace std; // Definition for binary tree 先序遍歷 根左右 struct TreeNode {int val;TreeNode *left;TreeNode *right;TreeNode(int x) : val(x), left(NULL), right(NULL) {} }; #if 0 class Solution { //me ok public:vector<int> v;vector<int> postorderTraversal(TreeNode *root) {if (root == NULL)return v;if ((*root).left != NULL)postorderTraversal((*root).left);if ((*root).right != NULL)postorderTraversal((*root).right);v.push_back((*root).val);return v;} }; #endif#if 0 class Solution { //因為這是棧結構,先進后出,所以根左右進,根右左出。 public:vector<int> postorderTraversal(TreeNode *root){vector<int> res;if (!root)return res;stack<TreeNode *> st;st.push(root);while (st.size()){TreeNode *temp = st.top();st.pop();res.push_back(temp->val);if (temp->left)st.push(temp->left);if (temp->right)st.push(temp->right);}reverse(res.begin(), res.end());return res;} }; #endif#if 1 //非迭代 class Solution { public:vector<int> v;stack<TreeNode*> s;vector<int> postorderTraversal(TreeNode *root) {if (root == NULL) {return v;}s.push(root);TreeNode *cur = NULL;while (!s.empty()) {cur = s.top();if (cur->left == NULL && cur->right == NULL){s.pop();v.push_back(cur->val);}else {if (cur->right != NULL){s.push(cur->right);cur->right = NULL;}if (cur->left != NULL) {s.push(cur->left);cur->left = NULL;}}}return v;} }; #endif

總結

以上是生活随笔為你收集整理的Leedcode7-binary-tree-postorder-traversal的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。