原题链接:https://oj.leetcode.com/problems/binary-tree-inorder-traversal/
题目大意:中序遍历二叉树
解题思路:中序遍历二叉树,中序遍历二叉树的左子树,访问根结点,中序遍历二叉树的右子树。非递归实现时,用一个栈模拟遍历过程即可。因为需要先遍历左子树,所以每个结点先入栈,出栈时访问。
vector<int> inorderTraversal(TreeNode *root) { vector<int> ret; if(!root) return ret; stack<TreeNode*> s; while(root||!s.empty()) { if(!root) { root=s.top(); ret.push_back(root->val); s.pop(); root=root->right; } else { s.push(root); root=root->left; } }
中序遍历和先许遍历一样需要熟练掌握,bug-free哦!
Binary Tree Inorder Traversal--leetcode
原文地址:http://blog.csdn.net/u010367506/article/details/41956627