zoukankan      html  css  js  c++  java
  • Leetcode 94. Binary Tree Inorder Traversal

    Given a binary tree, return the inorder traversal of its nodes' values.

    Example:

    Input: [1,null,2,3]
       1
        
         2
        /
       3
    
    Output: [1,3,2]

    Follow up: Recursive solution is trivial, could you do it iteratively?


    • 中序遍历。复习下递归跟迭代,需要借助stack。
     1 # Definition for a binary tree node.
     2 # class TreeNode:
     3 #     def __init__(self, x):
     4 #         self.val = x
     5 #         self.left = None
     6 #         self.right = None
     7 
     8 class Solution:
     9     def helper(self, node: TreeNode, list_result: List[int]):
    10         if node is None:
    11             return
    12         
    13         self.helper(node.left, list_result)
    14 
    15         list_result.append(node.val)
    16         
    17         self.helper(node.right, list_result)
    18         
    19     # Recursive approach    
    20     def inorderTraversal1(self, root: TreeNode) -> List[int]:
    21         if root is None:
    22             return [] # should return [] rather than None
    23         
    24         res = []
    25         self.helper(root, res)
    26         
    27         return res        
    28     
    29     # Iterative approach
    30     def inorderTraversal(self, root: TreeNode) -> List[int]:
    31         if root is None:
    32             return []
    33         
    34         cur = root
    35         res, stack = [], []
    36         
    37         while cur or stack:
    38             while cur:
    39                 stack.append(cur)
    40                 cur = cur.left
    41                 
    42             cur = stack.pop()
    43             res.append(cur.val)
    44             
    45             cur = cur.right
    46             
    47         return res
    View Python Code

     

  • 相关阅读:
    day23 GUI
    day17JDK5.0新特性与正则表达式
    day12-day15集合
    day11线程
    day10-JavaAPI
    day09面向对象-
    day08面向对象-内部类、异常
    day06面向对象
    Idea导入Eclipse中的Maven Web(SSM)
    java给图片添加水印
  • 原文地址:https://www.cnblogs.com/pegasus923/p/11190606.html
Copyright © 2011-2022 走看看