首先是鍊錶的建立,刪除指定節點,在指定位置新增節點等。
直接上**吧
class node
public
class
hello
node node = new node();
node.value = value;
node.next = null;
p.next = node;
}/**
* 在head 前面插入乙個節點
**@param head
*@param value
*/private
static
void
addnodebeforehead(node head, int value)
/*** 列印所有節點
**@param head
*/private
static
void
printnodes(node head)
system.out.println();
}/**
* 刪除value == data 的節點
**@param head
*@param data
*/private
static
void
deletenode(node head, int data)
node node1 = head, node2;
while (true) else }}
/*** 在給定節點後新增節點,有可能給定節點有多個
**@param head
*@param givennodevalue
*@param data
*/public
static
void
addnodeaftergivennode(node head, int givennodevalue, int data)
p = p.next;}}
/*** 在指定節點之前新增節點,指定節點可能有多個
**@param head
*@param givennodevalue
*@param data
*/public
static
void
addnodebeforegivennode(node head, int givennodevalue, int data) else }}
}
兩個很有用的題目:
/**
* 倒數第 k 個節點,一次遍歷
*@return
*/public
static
intlastknode(node head,int k)
if(p == null)return -1;//不夠k個節點
//一起走,p走到頭,退出
while(p.next != null && q.next != null)
return q.value;
}
/**
* 求鍊錶的中間節點的值,如果節點總數為偶數,則輸出左右節點平均值
* 兩個指標a,b;初始都位於頭節點,a走兩步,b走一步;
* 如果a的下乙個節點為空,那麼說明a走到最後乙個有值的節點,節點總數為偶數
* (具體視你鍊錶定義,我定義的是頭結點不存值,最後乙個有值節點的下乙個節點為null)
* 如果a為null,說明a走完,節點總數為奇數
*@param head
*@return
*/public
static
double
midnode(node head)
if(n1.next == null)
}if(flag == 1)
return (n2.value + n2.next.value)*1.0/2;
}
歡迎使用CSDN markdow
本markdown編輯器使用stackedit修改而來,用它寫部落格,將會帶來全新的體驗哦 markdown 是一種輕量級標記語言,它允許人們使用易讀易寫的純文字格式編寫文件,然後轉換成格式豐富的html頁面。維基百科 使用簡單的符號標識不同的標題,將某些文字標記為粗體或者斜體,建立乙個鏈結等,詳細...
歡迎毛毛與妞妞使用CSDN markdown編輯器
建立乙個自定義列表 如何建立乙個註腳 注釋也是必不可少的 katex數學公式 新的甘特圖功能,豐富你的文章 uml 圖表 flowchart流程圖 匯出與匯入 你好!這是你第一次使用markdown編輯器所展示的歡迎頁。如果你想學習如何使用markdown編輯器,可以仔細閱讀這篇文章,了解一下mar...
歡迎使用CSDN markdow1n編輯器
本markdown編輯器使用stackedit修改而來,用它寫部落格,將會帶來全新的體驗哦 markdown 是一種輕量級標記語言,它允許人們使用易讀易寫的純文字格式編寫文件,然後轉換成格式豐富的html頁面。維基百科 使用簡單的符號標識不同的標題,將某些文字標記為粗體或者斜體,建立乙個鏈結等,詳細...