歡迎使用CSDN markdown編輯器

2021-08-04 02:29:30 字數 2003 閱讀 9248

首先是鍊錶的建立,刪除指定節點,在指定位置新增節點等。

直接上**吧

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頁面。維基百科 使用簡單的符號標識不同的標題,將某些文字標記為粗體或者斜體,建立乙個鏈結等,詳細...