兩個單向鍊錶,找出它們的第乙個公共結點

2021-05-28 02:10:21 字數 1167 閱讀 2857

package structure.list;

import structure.list.node.lnode_01;

/** * 題目:兩個單向鍊錶,找出它們的第乙個公共結點

* * @author toy

* */

public class first_commonnode

/*** 逐個考察 o(m*n)

* * @param head1

* @param head2

* @return

*/private lnode_01 getfirstcommonnode_01(lnode_01 head1, lnode_01 head2)

q = q.next;

}p = p.next;

} return null;

} public lnode_01 method_02()

/*** 先找到長度差k,然後長的先遍歷k步,二者再同步遍歷

* * @param head1

* @param head2

* @return

*/private lnode_01 getfirstcommonnode_02(lnode_01 head1, lnode_01 head2)

first = linklist_01.tonodek(first, delta + 1);

while (follow != null && first != null)

follow = follow.next;

first = first.next;

} return null;

} public void init()

private lnode_01 creatlist()

public lnode_01 concatlist(lnode_01 head1, lnode_01 head)

p.next = head;

return head1;

} /**

* @param args

*/public static void main(string args) else

n = f.method_02();

if (n == null) else

}}

輸入兩個鍊錶,找出它們的第乙個公共結點

問題 輸入兩個鍊錶,找出它們的第乙個公共結點。分析 第一反應是蠻力法,這是沒認真思考才想到的方法。仔細分析就會發現,這兩個鍊錶有著共同的尾部,在兩個煉表達到第乙個公共結點後,之後每個結點都是相同的,拓撲形狀呈現為y型結構。思路一 首先遍歷兩個鍊錶,得到兩個鍊錶的長度,並得到兩個鍊錶的長度差。然後進行...

輸入兩個鍊錶,找出它們的第乙個公共結點

題目描述 輸入兩個鍊錶,找出它們的第乙個公共結點。分析 關鍵 公共部分長度一樣的,讓不公共的部分同步往前走就可以了。也就是長的先走,走到剩餘鍊錶長度和另乙個鍊錶長度相同的地方,兩個鍊錶同步走。class solution def findfirstcommonnode self,phead1,phe...

輸入兩個鍊錶,找出它們的第乙個公共結點

解題思路 要找到相交結點,首先計算出兩個鍊錶的長度,先讓長的鍊錶走abs lena lenb 步,然後再同步進行遍歷,如果兩個結點相等則返回true否則為false。definition for singly linked list.struct listnode typedef struct li...