leetcode 94
中序遍历
中序遍历有三种写法,递归、迭代和merris
class TreeNode:def __init__(self, val=0, left=None, right=None):self.val = valself.left = leftself.right = right
tree = TreeNode(1)tree.left = TreeNode(2)
tree.right = TreeNode(3)tree.left.left = TreeNode(4)
tree.left.right = TreeNode(5)tree.right.left = TreeNode(6)
递归
# 递归
def m1(root):ans = []def cur(root):if root is not None:cur(root.left)ans.append(root.val)cur(root.right)else:returnif root is None:return anselse:cur(root)return ans
迭代
# 迭代
def m2(root):stack = []ans = []while stack or root:if root:stack.append(root)root = root.leftelse:tmp = stack.pop()ans.append(tmp.val)root = tmp.rightreturn ans
merris
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
