国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

兩個(gè)鏈表的第一個(gè)公共結(jié)點(diǎn)

2019-11-11 02:49:34
字體:
供稿:網(wǎng)友

輸入兩個(gè)鏈表,找出它們的第一個(gè)公共結(jié)點(diǎn)。

IDEA

public class ListNode {    int val;    ListNode next = null;    ListNode(int val) {        this.val = val;    }}鏈表是單鏈表, 如果倆個(gè)鏈表有相同的節(jié)點(diǎn),則該節(jié)點(diǎn)后,這兩個(gè)鏈表重合,故拓?fù)浣Y(jié)構(gòu)是Y型。

處理的辦法是先計(jì)算兩個(gè)鏈表的長度,讓較長的鏈表先走到與另一鏈表一樣產(chǎn)度,然后同時(shí)移動(dòng),比較兩個(gè)鏈表,找出首次比較相同的那一個(gè)

CODE

public class Solution {    public ListNode FindFirstCommonNode(ListNode pHead1, ListNode pHead2) {        if(pHead1==null||pHead2==null){            return null;        }        int len1=getLength(pHead1);        int len2=getLength(pHead2);        ListNode p1=pHead1;        ListNode p2=pHead2; 		if(len1>len2){            int len=len1-len2;            while(len>0){                p1=p1.next;                len--;            }        }else{            int len=len2-len1;            while(len>0){                p2=p2.next;                len--;            }        }        while(p1!=p2){            p1=p1.next;            p2=p2.next;        }        return p1;    }    public static int getLength(ListNode pHead){        int len=0;        ListNode p=pHead;        while(p!=null){            len++;            p=p.next;        }        return len;    }}

這是不用計(jì)算長度的一個(gè)巧妙的辦法

public class Solution {    public ListNode FindFirstCommonNode(ListNode pHead1, ListNode pHead2) {        ListNode p1=pHead1, p2=pHead2;        while(p1!=p2){			p1=(p1==null?pHead2:p1.next);            p2=(p2==null?pHead1:p2.next);        }        return p1;    }}


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 灵丘县| 河池市| 乌海市| 财经| 安溪县| 徐州市| 桑日县| 博乐市| 台南市| 沭阳县| 湘潭市| 西青区| 明溪县| 休宁县| 乌海市| 焉耆| 祁门县| 伊宁市| 靖江市| 榆树市| 上林县| 东至县| 富民县| 四子王旗| 水富县| 嘉荫县| 三门峡市| 杂多县| 青冈县| 贵定县| 普洱| 星子县| 大名县| 静宁县| 临武县| 石楼县| 台北县| 米泉市| 腾冲县| 林州市| 民勤县|