二叉树的统一迭代法#思路

前序遍历:

class Solution:

    def preorderTraversal(self, root: TreeNode) -> List[int]:

       result=[]

       st=[]

       if root:

           st.append(root)

       while st:

           node=st.pop()

           if node != None:

               if node.right:

                   st.append(node.right)

               if node.left:

                   st.append(node.left)

               st.append(node)

               st.append(None)

           else:

               node=st.pop()

               result.append(node.val)

       return result

中序遍历:

class Solution:

    def inorderTraversal(self, root: Optional[TreeNode]) -> List[int]:

        result=[]

        st=[]

        if root:

            st.append(root)

        while st:

            node=st.pop()

            if node != None:

                if node.right:

                    st.append(node.right)

                st.append(node)

                st.append(None)

                if node.left:

                    st.append(node.left)

            else:

                node=st.pop()

                result.append(node.val)

        return result

后序遍历:

class Solution:

    def postorderTraversal(self,root:TreeNode) ->List[int]:

        result=[]

        st=[]

        if root:

            st.append(root)

        while st:

            node=st.pop()

            if node != None:

                st.append(node)

                st.append(None)

                if node.right:

                   st.append(node.right)

                if node.left:

                   st.append(node.left)

            else:

                 node=st.pop()

                 result.append(node.val)

        return result


 

最近更新

  1. TCP协议是安全的吗?

    2024-02-19 05:58:04       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-19 05:58:04       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-19 05:58:04       20 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-19 05:58:04       20 阅读

热门阅读

  1. 课时37:脚本交互_脚本外交互_案例实践

    2024-02-19 05:58:04       28 阅读
  2. Postgresql源码(122)Listen / Notify与事务的联动机制

    2024-02-19 05:58:04       22 阅读
  3. 001:自动驾驶概述

    2024-02-19 05:58:04       22 阅读
  4. 【Ubuntu 22.04】解决Ubuntu 22.04终端行距过大的问题

    2024-02-19 05:58:04       37 阅读
  5. 图像处理与计算机视觉算法

    2024-02-19 05:58:04       27 阅读
  6. wsl内置Ubuntu使用 Dinky 与 Flink 集成

    2024-02-19 05:58:04       31 阅读
  7. [R] First Section Revision

    2024-02-19 05:58:04       24 阅读
  8. go内置库函数实现client与server数据的发送接收

    2024-02-19 05:58:04       31 阅读
  9. 【状态估计】深度传感器与深度估计算法(1/3)

    2024-02-19 05:58:04       31 阅读