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...