插到某个人后面别插断
补全 insert_after:把 name 插到叫 target 的那个人后面。把「北辰」插到「阿岚」后面之后,输出第三个人的名字——插对了它应该还在链上。 (本题用 g++ -std=c++17 -O0 编译。)
删中间节点实际改的是什么
第 1 步:要把 7 这一节去掉 第 2 步:停在它前一节 prev 上 第 3 步:prev->next 直接指向 5 第 4 步:没人指着 7,它就不在链上了 3 7 5 9 ∅ head prev 把中间某个节点从链上去掉,真正
删头节点特殊在哪(C++)
删第一个节点和删中间的不一样,因为【0】。
找目标时为什么要记住前一个
删除时一边走一边还要留住「前一个」,因为【0】。
绕过中间那个之后第二个是谁
运行下面这段程序: #include <iostream> #include <string> #include <vector> using namespace std; struct Node {
把头换掉之后第一个是谁
运行下面这段程序: #include <iostream> #include <string> #include <vector> using namespace std; struct Node {
删掉中间某个人
补全 remove:把叫 target 的那个人从链上摘掉,返回新的头。删掉「小满」之后,输出第二个人的名字。(摘下来的节点先不管,下一节再讲怎么归还内存。) (本题用 g++ -std=c++17 -O0 编译。)
删掉的正好是第一个
同一个 remove,这次删的是头节点。删掉「阿岚」之后,输出第一个人的名字。 (本题用 g++ -std=c++17 -O0 编译。)
删尾巴再删个不在链上的
同一个 remove,连着删两次:先删最后一个「南风」,再删一个压根不在链上的「北辰」——后者必须原样返回,不能崩也不能删错人。补全后输出还剩几个人。 (本题用 g++ -std=c++17 -O0 编译。)
new 出来的节点要怎么归还
第 1 步:栈上有个指针 p,还没指东西 第 2 步:new 出一块,p 指着它 第 3 步:delete 以后这块还给系统 第 4 步:p 还指着那里:悬垂指针 第 5 步:用完把 p 置成 nullptr 第 6 步:q 又 new 了