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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

leetcode144. 二叉树的前序遍历(递归+迭代)

發布時間:2023/12/4 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 leetcode144. 二叉树的前序遍历(递归+迭代) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一:題目

二:上碼

1:遞歸

class Solution { public:void preorder(TreeNode* root,vector<int>&v ) {if(root == NULL) return;v.push_back(root->val);preorder(root->left,v);preorder(root->right,v);}vector<int> preorderTraversal(TreeNode* root) {vector<int> ans;preorder(root,ans);return ans;} };

2:迭代遍歷

class Solution { public:vector<int> preorderTraversal(TreeNode* root) {/**思路:1.迭代遍歷2.這里我們用到了棧,其實遞歸遍歷中的遞歸本質就是棧(操作系統層面上的),我們在遞歸的時候當遇到遞歸終止條件的時候,是一層一層往回返,那這的話,就是棧的先進后出特性.3.迭代遍歷,中我們先將根節點入隊,然后將其出隊將其出隊的結點的右節點先入隊,然后再將左節點入隊,(這是為了保證出隊的時候我們的順序是先序的順序 中左右)**/vector<int> ans;stack<TreeNode*>st;if(root != NULL)st.push(root);while(!st.empty()) {TreeNode* value = st.top();ans.push_back(value->val);st.pop();if(value->right) st.push(value->right);if(value->left) st.push(value->left);}return ans;} };


如有疑問請留言!!! 一個人可以走的很快 團結協作才能走的更遠!!!!!!!!

總結

以上是生活随笔為你收集整理的leetcode144. 二叉树的前序遍历(递归+迭代)的全部內容,希望文章能夠幫你解決所遇到的問題。

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