在之前的部落格中已經通過編碼實現了鍊錶的基本結構,此處將會以面試真題進行進一步運用。
查詢單鏈表中的倒數第k個結點:
思路:獲取鍊錶第h.getlength() - k + 1個節點(h為鍊錶)
**實現:
public
static object getnumber
(linklist h,
int num)
throws exception
if(num<
0||num>h.
getlength()
)int th = h.
getlength()
- num +1;
node head = h.
gethead()
;int count =0;
while
(count < th)
return head.
getdata()
;}
單鏈表反**
思路:
**實現:
public
static
void
testsinglelist
(linklist h)
throws exception
}
從尾到頭列印單鏈表:
思路:
public
static
void
ergodic
(linklist h)
throws exception
while
(!stack.
isempty()
) system.out.
println()
;}
合併兩個有序單鏈表,合併之後的鍊錶依然有序:
基本思路:將兩個單鏈表中第乙個元素中較小的元素先寫入到新鍊錶中,對應的元素的鍊錶節點後移,直到兩個鍊錶置空位置。
**實現:
public
static linklist merge
(linklist h, linklist n)
else
if(n_node != null)
else
if(note1data <= note2data)
else
newnode = newnode.
getnext()
;}return linklist;
}
單鏈表 (面試題)
關於單鏈表的基本操作,之前已經總結過了,那些掌握之後算是了解了單鏈表是什麼?不過現在面試的題中,肯定不會只讓你回答單鏈表的基礎操作,總是會改變一些東西,或是擴充套件一下。下面就是一些關於單鏈表的擴充套件內容 include include include pragma warning disable...
單鏈表面試題
1.倒序列印鍊錶 void reverseprint slistnode pfirst 有兩種方法 1.遞迴操作 2.非遞迴操作 2 非遞迴 slistnode pend slistnode pcur pend null while pfirst pend pend pcur printf d pe...
單鏈表(面試題)
鍊錶反轉思路 1.單鏈表中有效節點的個數 2.查詢單鏈表中弟第k個節點 3.單鏈表的反轉 實現 如下 public class testlink 1單鏈表中有效節點的個數 遍歷得出個數 public static intcount heronode head int count 0 while tr...