[Leetcode] 72. Binary Tree Inorder Traversal

题目

Given a binary tree, return the inorder traversal of its nodes' values.

For example:
Given binary tree [1,null,2,3],

1

2
/
3

return [1,3,2].

解题之法

// Recursion
class Solution {
public:
    vector inorderTraversal(TreeNode *root) {
        vector res;
        inorder(root, res);
        return res;
    }
    void inorder(TreeNode *root, vector &res) {
        if (!root) return;
        if (root->left) inorder(root->left, res);
        res.push_back(root->val);
        if (root->right) inorder(root->right, res);
    }
};

二叉树的中序遍历顺序为左-根-右,可以有递归和非递归来解,其中非递归解法又分为两种,一种是使用栈来接,另一种不需要使用栈。我们先来看递归方法,十分直接,对左子结点调用递归函数,根节点访问值,右子节点再调用递归函数。

你可能感兴趣的:([Leetcode] 72. Binary Tree Inorder Traversal)