題目描述:
給定兩個單鏈表,編寫演算法找出兩個鍊錶的公共結點。演算法思想: 核心**:
#include #include typedef struct lnode//如果不在這裡加lnode,結構體內的lnode*就會報錯
lnode;
int length(lnode* l)//注意:這裡之前寫成了int length(lnode* &l)用的引用。
//這樣的話,head1和head2最後都會變成null。難怪執行不對。
return k;
}lnode* find_pubilc_node(lnode* &head1,lnode* &head2)//不帶頭結點
else
int k=longlen-shortlen;
while((k--)!=0)//這裡忘記--了
//while(longlist&&shortlist&&longlist->data!=shortlist->data)這裡不是找相同的值
while(longlist!=null)
}return null;
}lnode* headinsert(lnode* &head)
return head->next;
//return head;
/*根據需要返回
1.return head帶頭結點的鍊錶
2.return head->next不帶頭結點的鍊錶
*/}lnode* tailinsert(lnode* &head)
r->next=null;//記得這句
return head->next;
//return head;
}void tailinsert_publicnode(lnode* &head1,lnode* &head2)
printf("l2:\n");
lnode *r2=head2;
scanf("%d",&x);
while(x!=999)
printf("public:\n");
scanf("%d",&x);
while(x!=999)
r1->next=null;//記得這句
r2->next=null;//記得這句
//return head;
}void printlist(lnode* l)
}int main()
王道課後習題2 3 22 兩個鍊錶的共同字尾
題目描述 帶頭結點的單鏈表,尋找兩個鍊錶的共同字尾的起始位置。演算法思想 雙指標法 核心 雙指標法 int length lnode l 注意 這裡之前寫成了int length lnode l 用的引用。這樣的話,head1和head2最後都會變成null。難怪執行不對。return k lnod...
鍊錶課後複習題 王道
目錄 1.設計乙個遞迴演算法,刪除不帶頭結點的單鏈表l中所有值為x的結點。2.刪除帶頭結點的單鏈表l中所有值為x的結點。3.在帶頭結點的單鏈表l中從尾到頭反向輸出每個結點的值 4.帶頭結點單鏈表l中刪除乙個最小值結點的比較高效的演算法,假設最小值結點唯一 5.將帶頭結點的鍊錶就地逆置 明日繼續更 以...
鍊錶 找出兩個鍊錶的交點
一 暴力求解法 思路 有2個鍊錶,所以我們可以使用雙重迴圈,先遍歷第乙個鍊錶,在遍歷第乙個鍊錶的同時裡面巢狀遍歷第二個鍊錶。如下 這裡需要注意的是第二個鍊錶會多次的遍歷,所以遍歷完一次之後需要將指標?放到第乙個節點上面,這樣才可以繼續遍歷這個鍊錶。暴力法求解 遍歷2個鍊錶 param heada p...