剑指offer——第8期

这篇具有很好参考价值的文章主要介绍了剑指offer——第8期。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

💟💟前言
🥇作者简介:友友们大家好,我是你们的小王同学😗😗
​🥈个人主页:小王同学🚗
​🥉 系列专栏:牛客刷题专栏📖
​📑 推荐一款非常火的面试、刷题神器👉 牛客网
觉得小王写的不错的话 麻烦动动小手点赞👍 收藏⭐ 评论📄
今天给大家带来的刷题系列是:
​剑指offer 链接:👉 剑指offer

剑指offer——第8期

剑指offer——第8期
剑指offer——第8期

​ 里面有非常多的题库 跟面经知识 真的非常良心了!!

JZ26 树的子结构

JZ26 树的子结构

题目描述

剑指offer——第8期

解题思路

1、先定义一个方法,传入两棵根节点值相同的树,判断root1是否和root2结构一样
2、再写一个方法来遍历大树,找到一个和小树根节点值相等的节点,以该节点和小树根节点的值为参数调用上面的方法即可

代码详解

import java.util.*;
/**
public class TreeNode {
    int val = 0;
    TreeNode left = null;
    TreeNode right = null;

    public TreeNode(int val) {
        this.val = val;

    }

}
*/
public class Solution {
    public boolean HasSubtree(TreeNode root1,TreeNode root2) {
        if(root1==null || root2==null) return false;//题目要求,空树不是任何树的子结构
        
        return IsChildTree(root1,root2)||HasSubtree(root1.left,root2)||
            HasSubtree(root1.right,root2);
            
      }  
       //当两颗树根节点相同时 判断root1 是否和root2结构一样
       boolean IsChildTree(TreeNode root1,TreeNode root2){
        if(root2==null) return true;
        
        if(root1==null) return false;
        
        if(root1.val!=root2.val && root2.val!=root1.val) return false;
        
    return IsChildTree(root1.left,root2.left)&&IsChildTree(root1.right,root2.right);
            
        
    }
}   

JZ25 合并两个排序的链表

JZ25 合并两个排序的链表

题目描述

剑指offer——第8期

解题思路

新建一个虚拟头结点 用来合并链表,如果list1的结点值小于list2的结点值 则将lsit1指向的结点值接到head的next指针后面 然后指向下一个节点否则让 list2指向下一个节点把未结束的链表连接到合并后的链表尾部最后将剩下的部分连接到root后面

代码详解

import java.util.*;
/*
public class ListNode {
    int val;
    ListNode next = null;

    ListNode(int val) {
        this.val = val;
    }
}*/
public class Solution {
    public ListNode Merge(ListNode list1,ListNode list2) {
        ListNode head=new ListNode(-1);//新建一个虚拟头结点 用来合并链表
        head.next=null;
        ListNode root=head;
        while(list1!=null&&list2!=null){ //如果list1的结点值小于list2的结点值 则将
            //lsit1指向的结点值接到head的next指针后面 然后指向下一个节点
            if(list1.val<list2.val){ //否则让 list2指向下一个节点
                head.next=list1;
                head=list1;
                list1=list1.next;
            }else{
                head.next=list2;
                head=list2;
                list2=list2.next;
                
            }
        }
        //把未结束的链表连接到合并后的链表尾部
        if(list1!=null) head.next=list1; //最后将剩下的部分连接到root后面
        if(list2!=null) head.next=list2;
        return root.next;
        
        
    }
}

剑指offer——第8期

​​
牛客是一款不论是面试 还是刷题 都是非常有用的 还等什么注册其来吧!👉👉 牛客网

文章来源地址https://www.toymoban.com/news/detail-434106.html

到了这里,关于剑指offer——第8期的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 【LeetCode】剑指 Offer(27)

    【LeetCode】剑指 Offer(27)

    目录 题目:剑指 Offer 53 - I. 在排序数组中查找数字 I - 力扣(Leetcode) 题目的接口: 解题思路: 代码: 过啦!!! 写在最后: 那么这道题呢, 如果只是作为一道题,或者说笔试题, 我们当然是二话不说直接暴力拿下, 来看代码: 是的,就是这么简单,三行代码暴力拿下

    2023年04月13日
    浏览(11)
  • 剑指 Offer. 翻转单词顺序

    输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串\\\"I am a student. \\\",则输出\\\"student. a am I\\\"。 示例 1: 示例 2: 示例 3: 代码如下:

    2024年02月15日
    浏览(9)
  • 【剑指offer】替换空格

    【剑指offer】替换空格

    👑专栏内容:力扣刷题 ⛪个人主页:子夜的星的主页 💕座右铭:前路未远,步履不停 剑指offer:替换空格 请实现一个函数,将一个字符串s中的每个空格替换成“%20”。 例如,当字符串为We Are Happy则经过替换之后的字符串为We%20Are%20Happy。 数据范围: 0 ≤ l e n ( s ) ≤ 1000

    2024年01月17日
    浏览(10)
  • 剑指offer:动态规划

    JZ42 连续子数组的最大和(一) 简单 通过率:40.77% 时间限制:1秒 空间限制:64M 知识点动态规划贪心 描述 输入一个长度为n的整型数组array,数组中的一个或连续多个整数组成一个子数组,子数组最小长度为1。求所有子数组的和的最大值。 数据范围: 1=n=2×105 −100=a[i]=100 要

    2024年02月03日
    浏览(9)
  • 【LeetCode】剑指 Offer(25)

    【LeetCode】剑指 Offer(25)

    目录 题目:剑指 Offer 49. 丑数 - 力扣(Leetcode) 题目的接口: 解题思路: 代码: 过啦!!! 写在最后: 丑数这道题用到一点动态规划的思想, 具体思路如下: 根据题意: 如果说第一个丑数是一,包含质因子 2、3 和 5 的数称作丑数, 那么我们发现,之后的丑数: 都是前

    2023年04月09日
    浏览(14)
  • 剑指 Offer 05. 替换空格

    力扣 请实现一个函数,把字符串 s 中的每个空格替换成\\\"%20\\\"。 示例 1: 输入:s = \\\"We are happy.\\\" 输出:\\\"We%20are%20happy.\\\" 限制: 0 = s 的长度 = 10000  题解: 算法流程:     初始化一个字符串,记为 res ;     遍历字符串 s 中的每个字符 s[i]:         当 s[i] 为空格时:向 re

    2024年02月15日
    浏览(14)
  • 【LeetCode】剑指 Offer(21)

    【LeetCode】剑指 Offer(21)

    目录 题目:剑指 Offer 39. 数组中出现次数超过一半的数字 - 力扣(Leetcode) 题目的接口: 解题思路: 代码: 过啦!!! 题目:剑指 Offer 40. 最小的k个数 - 力扣(Leetcode) 题目的接口: 解题思路: 代码: 过啦!!! 写在最后: 这道题,我的思路是直接排序, 然后返回中间

    2023年04月10日
    浏览(17)
  • 《剑指offer》 图专项突破

    《剑指offer》 图专项突破

    题目 海洋岛屿地图可以用由 0 、 1 组成的二维数组表示,水平或者竖直方向相连的一组 1 表示一个岛屿。请计算最大的岛屿的面积(即岛屿中 1 的数目)。例如,在图15.5中有 4 个岛屿,其中最大的岛屿的面积为 5 。 图15.5:用 0 、 1 矩阵表示的海洋岛屿地图。地图中有 4 个岛

    2024年01月16日
    浏览(9)
  • 剑指offer——第8期

    剑指offer——第8期

    💟💟前言 🥇作者简介:友友们大家好,我是你们的小王同学😗😗 ​🥈个人主页:小王同学🚗 ​🥉 系列专栏:牛客刷题专栏📖 ​📑 推荐一款非常火的面试、刷题神器👉 牛客网 觉得小王写的不错的话 麻烦动动小手点赞👍 收藏⭐ 评论📄 今天给大家带来的刷题系列是

    2024年02月02日
    浏览(1)
  • 剑指offer-3-10

    剑指offer-3-10

    1.用set 2.用一个数组代替哈希表 1.从右上角查找 2.查找的范围是从左下角到目前节点的小矩形,注意边界问题 针对于\\\" “.equals(c1)判定失败的问题: System.out.println(” “.equals(” “)); //true System.out.println(” \\\".equals(’ \\\')); //false 因为c1是字符,所以不行。 replace和replaceAll是JAVA中常

    2024年02月14日
    浏览(2)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包