题目链接:https://leetcode-cn.com/problems/binary-tree-inorder-traversal/
难度:简单

描述:
给定一个二叉树的根节点 root ,返回 它的 中序 遍历

题解

  1. # Definition for a binary tree node.
  2. # class TreeNode:
  3. # def __init__(self, val=0, left=None, right=None):
  4. # self.val = val
  5. # self.left = left
  6. # self.right = right
  7. class Solution:
  8. def inorderTraversal(self, root: Optional[TreeNode]) -> List[int]:
  9. ret = []
  10. def recursion(root):
  11. if root is None:
  12. return
  13. recursion(root.left)
  14. ret.append(root.val)
  15. recursion(root.right)
  16. recursion(root)
  17. return ret
  1. # Definition for a binary tree node.
  2. # class TreeNode:
  3. # def __init__(self, val=0, left=None, right=None):
  4. # self.val = val
  5. # self.left = left
  6. # self.right = right
  7. class Solution:
  8. def inorderTraversal(self, root: Optional[TreeNode]) -> List[int]:
  9. ret = []
  10. stk = []
  11. while root is not None or stk != []:
  12. while root is not None:
  13. stk.append(root)
  14. root = root.left
  15. root = stk.pop()
  16. ret.append(root.val)
  17. root = root.right
  18. return ret