鍊錶的插入 刪除 列印 刪除倒數第N個節點

2022-09-28 03:54:12 字數 2426 閱讀 4380

1 #include 2 #include 3

4using

namespace

std;56

class

listnode

9 listnode(int

x) : val(x), next(nullptr) {}

10 listnode(int x, listnode *next) : val(x), next(next) {}

1112

public:13

intval;

14 listnode *next;

15};

1617

class

solution else31}

32 listnode *curnode;

33if (n != 0) else

40delete

curnode;

41return;42

}43//尾插法插入鍊錶元素

44void insertnodeattail(listnode *&head, int

val)

51while (currentnode->next !=nullptr)

54 currentnode->next =newnode;

55return;56

}57//列印鍊錶元素

58void printflistnode(listnode *head)

63 std::cout << "

null

"<

64return;65

}66//刪除鍊錶中給定值節點

67void removenode(listnode *&head, int

val)

73while (current->next != nullptr && current->val !=val)

77if (current->val ==val) else

83delete

current;84}

85return;86

}87//獲取當前要刪除值得節點指標

88 listnode *getremovenode(listnode *head, int

val)

93while (current->next !=nullptr)

97 current = current->next;98}

99if (current->val ==val)

102return

nullptr;

103}

104};

105int

main()

106;

109 listnode *head =nullptr;

110//

插入節點

111for (const auto &v : vec)

114 test->printflistnode(head); //

1->2->3->4->5->6->7->null

115//

刪除頭結點

116 test->removenode(head, 1

);117 test->printflistnode(head); //

2->3->4->5->6->7->null

118//

刪除尾結點

119 test->removenode(head, 7

);120 test->printflistnode(head); //

2->3->4->5->6->null

121//

刪除倒數第n個節點

122 test->removenthfromend(head, 1

);123 test->printflistnode(head); //

2->3->4->5->null

124 test->removenthfromend(head, 4

);125 test->printflistnode(head); //

3->4->5->null

126 test->removenthfromend(head, 2

);127 test->printflistnode(head); //

3->5->null

128delete

test;

129 system("

pause");

130return0;

131 }

執行效果:

刪除鍊錶倒數第N個節點

1.問題 給定乙個鍊錶,刪除鍊錶的倒數第 n 個節點,並且返回鍊錶的頭結點。示例 給定乙個鍊錶 1 2 3 4 5,和 n 2.當刪除了倒數第二個節點後,鍊錶變為 1 2 3 5.2.演算法 暴力破解法 先計算得出鍊錶的長度m,然後將鍊錶長度和所給倒數字置相減,即loc m n 1,得出刪除節點的前...

刪除鍊錶倒數第n個節點

leetcode 題目 給定乙個鍊錶,刪除鍊錶的倒數第 n 個節點,並且返回鍊錶的頭結點。給定乙個鍊錶 1 2 3 4 5,和 n 2.當刪除了倒數第二個節點後,鍊錶變為 1 2 3 5.note n 鍊錶長度時,刪除頭節點 n 0時,不做任何操作。當第乙個指標first 比第二個指標領先n步,然後...

刪除鍊錶的倒數第N個節點

與查詢鍊錶的倒數第n個節點對比只改動了一行 查到倒數第n個節點後,將該節點的後續指標p1.next p1.next.next 即可 package 鍊錶中 public class nthnodefromendoflist return m 刪除倒數第n個節點 param args public s...