首页 > 其他分享 >[LeetCode Hot 100] LeetCode160. 相交链表

[LeetCode Hot 100] LeetCode160. 相交链表

时间:2023-12-03 11:44:26浏览次数:35  
标签:ListNode LeetCode160 链表 next Hot headB headA null public

题目描述


思路

方法一:

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) {
 *         val = x;
 *         next = null;
 *     }
 * }
 */
public class Solution {
    public ListNode getIntersectionNode(ListNode headA, ListNode headB) {
        if (headA == null || headB == null) return null;
        ListNode p = headA;
        ListNode q = headB;
        while (p != q) {
           if (p != null) {
               p = p.next;
           } else {
               p = headB;
           }
           if (q != null) {
               q = q.next;
           } else {
               q = headA;
           }
        }
        return p;
    }
}

方法二:将方法一改写成三目运算符形式

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) {
 *         val = x;
 *         next = null;
 *     }
 * }
 */
public class Solution {
    public ListNode getIntersectionNode(ListNode headA, ListNode headB) {
        if (headA == null || headB == null) return null;
        ListNode p = headA;
        ListNode q = headB;
        while (p != q) {
           p = (p != null) ? p.next : headB;
           q = (q != null) ? q.next : headA;
        }
        return p;
    }
}
// 三目运算符格式:
condition ? value_if_true : value_if_false

// 等价于

if (condition) {
    result = value_if_true;
} else {
    result = value_if_false;
}

标签:ListNode,LeetCode160,链表,next,Hot,headB,headA,null,public
From: https://www.cnblogs.com/keyongkang/p/17872756.html

相关文章

  • Leetcode刷题day4-链表.交换.删除.相交.环
    24.两两交换链表中的节点24.两两交换链表中的节点-力扣(LeetCode)给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(只能进行节点交换)。示例1:输入:head=[1,2,3,4]输出:[2,1,4,3]示例2:输入:head=[]输出:[......
  • 代码随想录算法训练营第四天 | 24. 两两交换链表中的节点 19.删除链表的倒数第N个节
    LeetCode24.两两交换链表中的节点题目链接:LeetCode24思路:交换结点前将cur后第一个结点和第三个结点进行保存,然后修改cur指向头节点后再修改头节点后的结点classSolution{public:ListNode*swapPairs(ListNode*head){ListNode*dummyHead=newListNo......
  • 第二章 链表part01
    第二章链表part01203.移除链表元素  Code:/***Definitionforsingly-linkedlist.*structListNode{*  intval;*  ListNode*next;*  ListNode():val(0),next(nullptr){}*  ListNode(intx):val(x),next(nullptr){}*  L......
  • FreeRTOS--链表
    示例源码基于FreeRTOSV9.0.0链表1概述链表一般可分为单向链表、双向链表、环形链表。FreeRTOS采用的是环形双向链表设计;单向链表只有后继节点,双向链表有后继和前驱节点;链表的目的是把元素串联,其设计方式一般有两种:将元素放置在链表结构体中;将链表结构体放置在元素中;方......
  • Photoshop批量替换图层的方法
    平时做图片,应该有遇到这样的场景,比如P奖状、P邀请函,内容是一样的,但是图片上的名字是不一样的,要是要P100张的话,一个个手动复制改名字肯定会吐血(╯°□°)╯︵┻━┻Photoshop里有个变量的功能,就是专门解决这个问题的。先将要批量替换的图层,通常是文字图层,单独新建一层。然后在图......
  • [LeetCode Hot] LeetCode283. 移动零
    题目描述方法一:时间复杂度O(n2)classSolution{publicvoidmoveZeroes(int[]nums){for(inti=0;i<nums.length;i++){//指针i为0的时候停止if(nums[i]==0){//遍历[i+1,nums.length-1],如果遇......
  • [LeetCode Hot 100] LeetCode11. 盛最多的水
    题目描述方法一:暴力,超出时间限制模拟所有情况,记录最大的体积值。体积=Math.min(height[i],height[j])*(j-i)classSolution{publicintmaxArea(int[]height){intres=Integer.MIN_VALUE;for(inti=0;i<height.length;i++){......
  • 代码随想录算法训练营第三天 | 203.移除链表元素 707.设计链表 206.反转链表
    LeetCode 203.移除链表元素视频链接:LeetCode203思路:根据链表的性质,将目标值对应的节点保存在一个临时节点中,再重新设置cur下一个节点,再将临时节点进行删除classSolution{public:ListNode*removeElements(ListNode*head,intval){//删除头节点......
  • 数据结构与算法之单链表-----黑马程序员(26-35)
    1.链表的概念在计算机科学中,链表是数据元素的线性集合,其每个元素都指向下一个元素,元素储存上并不连续。 创建链表如图所示和相关代码publicclassdanlianbiao{privateNodehead=null;//头部第一个结点privatestaticclassNode{//后面的每个结点intvalue;Nodene......
  • #yyds干货盘点# LeetCode程序员面试金典:奇偶链表
    题目给定单链表的头节点head,将所有索引为奇数的节点和索引为偶数的节点分别组合在一起,然后返回重新排序的列表。第一个节点的索引被认为是奇数,第二个节点的索引为偶数,以此类推。请注意,偶数组和奇数组内部的相对顺序应该与输入时保持一致。你必须在O(1)的额外空间复杂......