List相關演算法

2021-08-02 02:43:34 字數 2624 閱讀 5736

乙個快節點,乙個慢節點,如果有環,快節點一定會追上慢節點

/**

* definition for singly-linked list.

* class listnode

* }*/public

class

solution

return

false;

}}

將要刪除節點複製為下乙個節點,並刪除下乙個節點。

/**

* definition for singly-linked list.

* public class listnode

* }*/public

class

solution

}

for example,

given 1->1->2, return 1->2.

given 1->1->2->3->3, return 1->2->3.

/**

* definition for singly-linked list.

* public class listnode

* }*/public

class

solution

else

}return head;

}}

將較長鍊錶的長度減去較短鍊錶的長度,然後較長鍊表頭移動此長度,從此長度開始比較兩個鍊錶

/**

* definition for singly-linked list.

* public class listnode

* }*/public

class

solution

}else

if(cutnum<0)

}//進行比較

while(a!=null)

return

null;

}public

intgetlength(listnode head)

return len;

}}

/**

* definition for singly-linked list.

* public class listnode

* }*/public

class

solution

else

}return head;

}}

/**

* definition for singly-linked list.

* public class listnode

* }*/public

class

solution

return pre;

}}

先找到鍊錶的中點,然後以中點為起點反轉之後的鍊錶,然後逐項比較鍊錶節點是否相等

/**

* definition for singly-linked list.

* public class listnode

* }*/public

class

solution

reverselist(slow);

while(first!=null && last!=null)

return

true;

}public

static

void

reverselist(listnode head)

}}

建立乙個新鍊錶,新鍊錶的頭是舊煉表頭中較小的那個,然後依次比較舊鍊錶的各個節點值的大小,但是需要跳過已經成為新煉表頭的那個節點。

/**

* definition for singly-linked list.

* public class listnode

* }*/public class

solution

else

}if(head1==null)

else

return head;

}}

首先找到倒數第n+1個節點,這個節點就是右旋鍊錶的尾巴,這個鍊錶的下乙個節點就是新鍊錶的頭結點。

還要注意鍊錶的邊界情況,如鍊表為空或者只有乙個節點或者k=0時,直接返回原鍊錶。

如果k為鍊錶長度,也返回原鍊錶。

如果k大於鍊錶長度,先用鍊錶長度對k取模,然後再旋轉鍊錶。

/**

* definition for singly-linked list.

* public class listnode

* }*/public

class

solution

public listnode getlastnnode(listnode head,int n)

return result;

}public

intgetlistlength(listnode head)

return length;

}}

list相關的函式

1 any list list 中任何乙個元素都有邏輯真,則返回 true,全為假返回 false all list list 中所有元素都為真時返回 true,否則返回 false 2 max list min list 返回列表中的最大值 或 最小值 3 enumerate 在列表中同時迴圈 索...

list相關宕機

gdb f 0 0 operator this at opt hisi linux x86 arm arm hisiv300 linux arm hisiv300 linux uclibcgnueabi include c 4.8.3 bits stl list.h 235 235 m node m...

節點List相關操作

為方便遍歷子節點,lxml將節點list的操作盡可能的與python處理list的方式一樣保持一致 建立xml from lxml import etree root etree.element root 建立根節點 child1 建立子節點child1 child2 etree.subelemen...