美文网首页
递归调用中的递归序

递归调用中的递归序

作者: Mr_Editor | 来源:发表于2020-08-12 10:07 被阅读0次

    从刚开始接触递归,到接触二叉树递归遍历,简单几行代码就能实现前中后序遍历,而且,前中后序遍历的代码基本一致,觉得好神奇

    节点递归顺序分析

    代码是遍历二叉树时常用的递归代码,在1位置raverse函数返回值head节点,在2位置raverse函数返回值左孩子节点,在3位置traverse函数返回值为右孩子节点

        public static void traverse(Node head){
            if(head == null)
                return ;
            // 1 先序
            traverse(head.left);
            // 2 中序
            traverse(head.left);
            //3 后续
        }
    
    • 以先序为例子*
      看图


      递归过程

    根据递归过程,可以发现,二叉树的每个节点会到达三次 ,根据图中,访问顺序为 12444255521...
    因此在第一次到达节点进行处理就是二叉树的先序遍历,第二次到达进行处理就是中序遍历,第三次到达进行处理就是后序遍历。

    递归序的作用

    根据图中的访问顺序可以发现,节点可以收集左右节点的信息,即问题可以得到子问题的信息,是利用树做动态规划的基础!!!

    相关文章

      网友评论

          本文标题:递归调用中的递归序

          本文链接:https://www.haomeiwen.com/subject/xurpdktx.html