每日算法&面试题,大厂特训二十八天——第十九天(树)

Posted 肥学

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了每日算法&面试题,大厂特训二十八天——第十九天(树)相关的知识,希望对你有一定的参考价值。

目录标题

导读

肥友们为了更好的去帮助新同学适应算法和面试题,最近我们开始进行专项突击一步一步来。上一期我们完成了动态规划二十一天现在我们进行下一项对各类算法进行二十八天的一个小总结。还在等什么快来一起肥学进行二十八天挑战吧!!

特别介绍

📣小白练手专栏,适合刚入手的新人欢迎订阅编程小白进阶

📣python有趣练手项目里面包括了像《机器人尬聊》《恶搞程序》这样的有趣文章,可以让你快乐学python练手项目专栏

📣另外想学JavaWeb进厂的同学可以看看这个专栏:传送们

📣这是个冲刺大厂面试专栏还有算法比赛练习我们一起加油 上岸之路

算法特训二十八天

给你二叉树的根节点 root ,返回它节点值的 前序 遍历。

输入:root = [1,null,2,3]
输出:[1,2,3]
示例 2:

输入:root = []
输出:[]
示例 3:

输入:root = [1]
输出:[1]

思路:递归

class Solution 
    public List<Integer> preorderTraversal(TreeNode root) 
        List<Integer> res = new ArrayList<Integer>();
        preorder(root, res);
        return res;
    

    public void preorder(TreeNode root, List<Integer> res) 
        if (root == null) 
            return;
        
        res.add(root.val);
        preorder(root.left, res);
        preorder(root.right, res);
    




给定一个二叉树的根节点 root ,返回它的 中序 遍历。

输入:root = [1,null,2,3]
输出:[1,3,2]
示例 2:

输入:root = []
输出:[]
示例 3:

输入:root = [1]
输出:[1]

思路:递归

初始部分:
/**
 * Definition for a binary tree node.
 * public class TreeNode 
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode() 
 *     TreeNode(int val)  this.val = val; 
 *     TreeNode(int val, TreeNode left, TreeNode right) 
 *         this.val = val;
 *         this.left = left;
 *         this.right = right;
 *     
 * 
 */

解题部分:
class Solution 
    public List<Integer> inorderTraversal(TreeNode root) 
        List<Integer> res = new ArrayList<Integer>();
        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 ,返回其节点值的 后序遍历 。

输入:root = [1,null,2,3]
输出:[3,2,1]
示例 2:

输入:root = []
输出:[]
示例 3:

输入:root = [1]
输出:[1]
初始化:
/**
 * Definition for a binary tree node.
 * public class TreeNode 
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode() 
 *     TreeNode(int val)  this.val = val; 
 *     TreeNode(int val, TreeNode left, TreeNode right) 
 *         this.val = val;
 *         this.left = left;
 *         this.right = right;
 *     
 * 
 */
解题:
class Solution 
    public List<Integer> postorderTraversal(TreeNode root) 
        List<Integer> res = new ArrayList<Integer>();
        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);
    



面试题

TCP/IP 协议涉及哪几层架构?

应用层 传输层 互连网络层 网络接口层。


网络OSI 七层模型

描述下 TCP 连接 4 次挥手的过程?为什么要 4 次挥手?

因为 TCP 是全双工,每个方向都必须进行单独关闭。关闭连接时,当 Server 端收到 FIN
报文时,很可能并不会立即关闭 SOCKET,所以只能先回复一个 ACK 报文,告诉 Client
端,”你发的 FIN 报文我收到了”。只有等到 Server 端所有的报文都发送完了,我才能发
送 FIN 报文,因此不能一起发送。故需要四步握手

点击直接资料领取

这里有python,Java学习资料还有有有趣好玩的编程项目,更有难寻的各种资源。反正看看也不亏。

以上是关于每日算法&面试题,大厂特训二十八天——第十九天(树)的主要内容,如果未能解决你的问题,请参考以下文章

每日算法&面试题,大厂特训二十八天——第十九天(树)

每日算法&面试题,大厂特训二十八天——第十七天(链表)

每日算法&面试题,大厂特训二十八天——第十二天(数组)

每日算法&面试题,大厂特训二十八天——第十五天(字符串)

每日算法&面试题,大厂特训二十八天——第二十八天(数组)

每日算法&面试题,大厂特训二十八天——第八天(递归|回溯)