国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 无极县| 涞源县| 桐城市| 突泉县| 柞水县| 肇州县| 资阳市| 内丘县| 开阳县| 梨树县| 莱西市| 枝江市| 德庆县| 洛宁县| 焦作市| 吐鲁番市| 高阳县| 自贡市| 洞头县| 泽普县| 长汀县| 凤冈县| 通江县| 攀枝花市| 台前县| 六安市| 泊头市| 昔阳县| 嵊泗县| 新沂市| 昌图县| 黎城县| 民和| 那坡县| 鄂州市| 吴川市| 孝昌县| 抚州市| 肥西县| 新巴尔虎左旗| 武威市|