美文网首页
要成功就做一百题-98

要成功就做一百题-98

作者: 西5d | 来源:发表于2020-04-08 21:55 被阅读0次

题目名称

二叉树的中序遍历

描述

给定一个先序遍历的二叉树,打印出其中序(中根)遍历的结构。

示例:

输入: [1,null,2,3]
   1
    \
     2
    /
   3

输出: [1,3,2]

解题思路

首先是根据定义的结构,构造对应的二叉树,然后根据中根遍历的方式,先定义个数组,保存结果数值,在一次用先左,再中,后右的形式,遍历二叉树节点,存入结果就可以了。这里先不考虑非递归的实现。如下是代码。

代码

   @Test
    public void bTree(){
        TreeNode root = new TreeNode(1);
        root.right = new TreeNode(2);
        root.right.left = new TreeNode(3);
        root.left = new TreeNode(2);
        System.out.println(inorderTraversal(root));
    }

    List<Integer> list = new ArrayList<>();
    public List<Integer> inorderTraversal(TreeNode root) {
        traversal(root);
        return list;
    }

    private void traversal(TreeNode node){
        if(null == node){
            return;
        }
        TreeNode left = node.left;
        TreeNode right = node.right;
        if(null != left){
            traversal(left);
        }
        list.add(node.val);
        if(null != right){
            traversal(right);
        }
    }

总结

二叉树相关很多使用了递归的方式,递归看起来也好理解。非递归遍历,相比较而言更有挑战性,目前想到的使用队列、栈结构实现,后面再做补充。

相关文章

  • 要成功就做一百题-98

    题目名称 二叉树的中序遍历 描述 给定一个先序遍历的二叉树,打印出其中序(中根)遍历的结构。 解题思路 首先是根据...

  • 要成功就做一百题-90

    题目名称 第十三题 罗马数字转整数 描述 解题思路 这里做了个找规律,先把所有字符加起来,再处理特殊情况,题目说了...

  • 要成功就做一百题-89

    题目名称 实现字符串函数strStr() ,第28题 描述 解题思路 目的是找出某个字符串在另一个字符串的起始位置...

  • 要成功就做一百题-92

    题目名称 括号生成 描述 难度属于中等,目的是根据给定的括号数,生成有效的括号集合。 解题思路 这题比较有意思,这...

  • 要成功就做一百题-93

    题目名称 有效的括号判断 描述 输入的字符串只包含{ [] } ()三种括号的组合,判断输入是否是有效的括号,如下...

  • 要成功就做一百题-91

    题目名称 矩阵置零 描述 难度属于中等,如下是题目的描述,leetcode 73题。 解题思路 这里我也没用其他复...

  • 要成功就做一百题-99

    题目名称 爬楼梯问题,斐波拉契数列,泰波拉契数列 描述 第一个是常见的题目,第二个斐波拉契,第三个是斐波拉契的变种...

  • 要成功就做一百题-100

    题目有点唬人,当然要的就是这个效果,标题党一把。从现在开始做100道leetcode题目,为了起到比较好的督促作用...

  • 要成功就做一百题-97

    题目名称 今天来一个简单题目试试水,好久没发了。 一来遇到个复杂题,一时没解,二来最近实在有点忙。废话不多,开始正...

  • 要成功就做一百题-95

    题目名称 已经排序的数组,必须在O(logn)的复杂度下统计得到指定元素的重复次数。 描述 比如数组[1,1,2,...

网友评论

      本文标题:要成功就做一百题-98

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