首页 > 其他分享 >代码随想录训练营第十四天 | 二叉树

代码随想录训练营第十四天 | 二叉树

时间:2022-10-26 02:11:05浏览次数:81  
标签:return 随想录 List 第十四天 二叉树 res root public

今天是第十四天,除了二叉树的基本概念外,还有递归法的应用

 144. 二叉树的前序遍历

class Solution {
    public List<Integer> preorderTraversal(TreeNode root) {
        List<Integer> res = new ArrayList<>();
        preoder(root,res);
        return res;
    }
    public void preoder(TreeNode root, List<Integer> res){
        if(root == null){
            return;
        }
        res.add(root.val);
        preoder(root.left, res);
        preoder(root.right, res);
        
    }
}

二叉树前序的递归解法,先让list加入中间节点的值,再依次让左右节点递归

 

145. 二叉树的后序遍历

class Solution {
    public List<Integer> postorderTraversal(TreeNode root) {
        List<Integer> res = new ArrayList<>();
        postOrder(root,res);
        return res;
    }
    public void postOrder(TreeNode root, List<Integer> res){
        if (root == null){
            return;
        }
        postOrder(root.left, res);
        postOrder(root.right, res);
        res.add(root.val);
        

    }
}

二叉树的递归解法,先让左右节点递归后,再让list加入中间节点的值。

 

94. 二叉树的中序遍历

class Solution {
    public List<Integer> inorderTraversal(TreeNode root) {
        List<Integer> res = new ArrayList<>();
        inorder(root, res);
        return res;
    }
    public void inorder(TreeNode root, List<Integer> res){
        if(root == null){
            return ;
        }
        inorder(root.left, res);
        res.add(root.val);
        inorder(root.right, res);
    }
}

在左右节点递归的中间插入root的值。

 

今天是基础的二叉树递归解法,明天是迭代法的学习

标签:return,随想录,List,第十四天,二叉树,res,root,public
From: https://www.cnblogs.com/catSoda/p/16826981.html

相关文章

  • 代码随想录day21 | 530.二叉搜索树的最小绝对差 501. 二叉搜索树中的众数 236. 二叉
    530.二叉搜索树的最小绝对差题目|文章思路二叉搜索树的特点是按照中序遍历从小到大进行排列,因此,按照中序遍历,逐个比较即可找到最小差值进行中序遍历,当前节点和前一个......
  • 剑指 Offer 37. 序列化二叉树 - 力扣(LeetCode)
    剑指Offer37.序列化二叉树-力扣(LeetCode)题目大意:将一棵二叉树序列化成字符串,然后通过该字符串可以重新构造出二叉树思路:看到将二叉树转化成字符串,首先想到的......
  • 算法】字符串复原IP地址,从前序与中序编辑序列构造二叉树
    算法学习有些时候是枯燥的,一点一点学习算法第一题算法题目描述对给定的两个日期之间的日期进行遍历,比如startTime是2014-07-11;endTime是2014-08-11如何把他们之间......
  • 已知后序和中序输出前序(二叉树)
    已知后序和中序输出前序(二叉树)给出二叉树的后序遍历和中序遍历,要求输出二叉树的前序遍历:后序:2315764中序:1234567分析:由后序遍历的特性可知,后序的最后一个......
  • python实现二叉树并且遍历
    python实现二叉树并且遍历2.1二叉树的遍历2.1.1前序遍历(根左右)二叉树的前序遍历的步骤如下:访问树的根节点---->访问当前节点的左子树---->若当前节点无左子树,访......
  • 关于存储二叉树
    !前置芝士:二叉树的性质\(1.\)二叉树中,第\(i\)层最多有\(2i-1\)个结点。\(2.\)如果二叉树的深度为\(K\),那么此二叉树最多有\(2K-1\)个结点。二叉树中,终端结点数(叶子结......
  • 代码随想录Day10
    LeetCode459重复字符串给定一个非空的字符串,判断它是否可以由它的一个子串重复多次构成。给定的字符串只含有小写英文字母,并且长度不超过10000。示例1:输入:"abab"输......
  • BZOJ 2111([ZJOI2010]Perm 排列计数-乘法逆元+完全二叉树模型+数列分数表示法)
    2111:[ZJOI2010]Perm排列计数TimeLimit: 10Sec  MemoryLimit: 259MBSubmit: 478  Solved: 283[​​Submit​​][​​Status​​][​​Discuss​​]......
  • 代码随想录day24
    77.组合解题步骤:  1、确定回溯函数参数及返回值;        vector<vector<int>> result;        vector<int> path;        void back......
  • 代码随想录Day9 KMP算法
    LeetCode 剑指offer 58 左旋转字符串字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符......