美文网首页
[Leetcode] 72. Binary Tree Inord

[Leetcode] 72. Binary Tree Inord

作者: 时光杂货店 | 来源:发表于2017-03-24 15:30 被阅读3次

    题目

    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<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->right) inorder(root->right, res);
        }
    };
    

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

    相关文章

      网友评论

          本文标题:[Leetcode] 72. Binary Tree Inord

          本文链接:https://www.haomeiwen.com/subject/bedfottx.html