前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【leetcode刷题】T111-二叉树的中序遍历

【leetcode刷题】T111-二叉树的中序遍历

作者头像
木又AI帮
修改2019-07-18 10:31:58
3330
修改2019-07-18 10:31:58
举报
文章被收录于专栏:木又AI帮木又AI帮

【题目】

给定一个二叉树,返回它的中序 遍历。

代码语言:javascript
复制
示例:

输入: [,null,,]
   
    \
     
    /
   

输出: [,,]

进阶: 递归算法很简单,你可以通过迭代算法完成吗?

【思路】

本题非常简单,中序遍历,顺序是左节点、根节点、右节点,直接递归调用函数即可。

【代码】

python版本

代码语言:javascript
复制
# Definition for a binary tree node.
# class TreeNode(object):
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None

class Solution(object):
    def inorderTraversal(self, root):
        """
        :type root: TreeNode
        :rtype: List[int]
        """
        num = []
        self.traversal(root, num)
        return num
    
    def traversal(self, node, num):
        if node:
            self.traversal(node.left, num)
            num.append(node.val)
            self.traversal(node.right, num)

C++版本

代码语言:javascript
复制
/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };
 */
class Solution {
public:
    vector<int> inorderTraversal(TreeNode* root) {
        vector<int> num;
        Solution().traversal(root, num);
        return num;
    }
    
    void traversal(TreeNode* node, vector<int>& num){
        if(node){
            traversal(node->left, num);
            num.push_back(node->val);
            traversal(node->right, num);
        }
    }
};
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-07-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 木又AI帮 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档