Leetcoed--Binary Tree Inorder Traversal (二叉搜索树--中序遍历)

来源:互联网 发布:淘宝助理5.5官方版 编辑:程序博客网 时间:2024/06/15 21:28

题目:

给定一个二叉搜索树,求它的中序遍历结果

思路:

使用递归,给定一颗树,先遍历左子树,再读根,再遍历右子树。遍历左子树的方式可以再调用这个函数本身,经过多次递归调用,可以完成对给定树的中序遍历

代码:


# Definition for a binary tree node.# class TreeNode(object):#     def __init__(self, x):#         self.val = x#         self.left = None#         self.right = Noneclass Solution(object):    def inorderTraversal(self, root):        """        :type root: TreeNode        :rtype: List[int]        """        ans = []        if not root:            return ans        else:            self.dfs(root,ans)            return ans    def dfs(self,root,ans):        if not root:            return        self.dfs(root.left,ans)        ans.append(root.val)        self.dfs(root.right,ans)

注意:python的类内函数参数self的作用:self指的是这个类对象本身,类似于c++的this,self参数python会自动给定,所以传递参数时不必要传self的值(也可以传对象名)。而函数定义时最好有self参数,方便递归调用,也方便读者阅读。

阅读全文
1 0
原创粉丝点击