链表的题解(剑指offer)
如有问题,请多多指教
题目是《剑指offer》上的所有链表题目,并不是最优解法,可以借鉴。
前6个结构体的定义均为
typedef struct ListNode
{
int val;
ListNode *next;
ListNode(int x) : val(x), next(NULL) {}
};
1.输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。https://blog.csdn.net/weixin_42078660/article/details/96309778
///倒序输出链表 也可以递归输出
vector<int> reversePrint(ListNode* head)
{
stack<int> st;
vector<int> vec;
ListNode *p = head;
while (p != NULL)
{
st.push(p->val);
p=p->next;
}
while (!st.empty())
{
vec.push_back(st.top());
st.pop();
}
return vec;
}
2.给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。返回删除后的链表的头节点。
可以参考本博客的