您的位置:首页 > 其它

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

2017-08-23 14:49 232 查看
题目:

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

思路:

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

代码:

# 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]
"""
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参数,方便递归调用,也方便读者阅读。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐