[LeetCode] 94. Binary Tree Inorder Traversal 二叉树的中序遍历
Given a binary tree, return the inorder traversal of its nodes' values. Example: Input: [1,null,2,3] 1 \ 2 / 3 Output: [1,3,2] Follow up: Recursive solution is trivial, could you do it iteratively? 二叉树的中序遍历顺序为左-根-右,可以有递归和非递归来解,其中非递归解法又分为两种,一种是使用栈来接,另一种不需要使用栈。我们先来看递归方法,十分直接,对左子结点调用递归函数,根节点访问值,右子节点再调用递归函数,代码如下: 解法一: class Solution { public : vector < int > inorderTraversal(TreeNode * root) { vector < int > res; inorder(root, res); return res; } void inorder(TreeNode *root, vector< int > & res) { if (!root) return ; if (root->left) inorder(root-> left, res); res.push_back(root -> val); if (root-