博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode 94. 二叉树的中序遍历
阅读量:4595 次
发布时间:2019-06-09

本文共 1940 字,大约阅读时间需要 6 分钟。

 

 迭代

1 /** 2  * Definition for a binary tree node. 3  * struct TreeNode { 4  *     int val; 5  *     TreeNode *left; 6  *     TreeNode *right; 7  *     TreeNode(int x) : val(x), left(NULL), right(NULL) {} 8  * }; 9  */10 class Solution {11 public:12     vector
inorderTraversal(TreeNode* root) {13 vector
ans;14 if(!root) return ans;15 stack
nodeStack;16 while(root) 17 {18 nodeStack.push(root);19 root = root->left;20 }21 while(!nodeStack.empty()) {22 TreeNode* node = nodeStack.top();23 ans.push_back(node->val);24 nodeStack.pop();25 if(node = node->right) {26 while(node) {27 nodeStack.push(node);28 node = node->left;29 } 30 }31 }32 33 return ans;34 }35 };

优化:

class Solution {public:    vector
inorderTraversal(TreeNode* root) { vector
res; stack
st; while (root!=NULL || !st.empty()) { while (root != NULL) { st.push(root); root = root->left; } root = st.top(); st.pop(); res.push_back(root->val); root = root->right; } return res; }};

 

递归:

1 class Solution { 2 public: 3      void process(TreeNode* root,vector
&ans) 4 { 5 6 if(root->left) process(root->left,ans); 7 ans.push_back(root->val); 8 if(root->right) process(root->right,ans); 9 }10 11 vector
inorderTraversal(TreeNode* root) {12 vector
ans;13 if(root)14 process(root,ans);15 return ans;16 }17 };

 

转载于:https://www.cnblogs.com/jj81/p/11487221.html

你可能感兴趣的文章
优云软件助阵GOPS·2017全球运维大会北京站
查看>>
linux 装mysql的方法和步骤
查看>>
poj3667(线段树区间合并&区间查询)
查看>>
51nod1241(连续上升子序列)
查看>>
SqlSerch 查找不到数据
查看>>
集合相关概念
查看>>
Memcache 统计分析!
查看>>
(Python第四天)字符串
查看>>
个人介绍
查看>>
使用python动态特性时,让pycharm自动补全
查看>>
关于R软件的安装
查看>>
MySQL数据库免安装版配置
查看>>
你必知必会的SQL面试题
查看>>
html5 Canvas绘制时钟以及绘制运动的圆
查看>>
Unity3D热更新之LuaFramework篇[05]--Lua脚本调用c#以及如何在Lua中使用Dotween
查看>>
JavaScript空判断
查看>>
洛谷 P1439 【模板】最长公共子序列(DP,LIS?)
查看>>
python timeit
查看>>
Wireless Network 并查集
查看>>
51nod 1019 逆序数
查看>>