no206 Reverse Linked List

本文深入探讨了链表逆序算法的实现细节,通过迭代和递归两种方法,详细解释了如何反转链表。提供了完整的C++代码示例,并对比了使用栈进行逆序的替代方案。
#include<iostream>

using namespace std;

struct ListNode{
	int val;
	ListNode *next;
	ListNode(int x):val(x),next(NULL){}
};
//https://leetcode-cn.com/problems/reverse-linked-list/solution/die-dai-di-gui-jie-fa-by-sunshy/
class Solution {
public:
	ListNode* reverseList(ListNode* head) {
       if(!head){
			return nullptr;
		} 
		ListNode *pre = head;
		ListNode *cur = head->next;
		while(cur !=nullptr){
			pre->next = cur->next;
			ListNode *tmp= cur->next;
			cur->next = head;
			head = cur;
			cur = tmp;
		}		
		return head;
	}
};
int main(){
	Solution so;
	ListNode *l1 = new ListNode(1);
	ListNode *l2 = new ListNode(2);
	ListNode *l3 = new ListNode(3);
	ListNode *l4 = new ListNode(4);
	ListNode *l5 = new ListNode(5);

	l1->next = l2;
	l2->next = l3;
	l3->next = l4;
	l4->next = l5;
	ListNode *ll = so.reverseList(l1);
	while(ll->next !=NULL){
		cout << l1->val << ",";	
		l1 = l1->next;
	}
}

//use stack
    public static ListNode reverseListVersion2(ListNode head) {
        if(head == null){
            return null;
        }
        Stack<Integer> transferStack = new Stack<>();
        ListNode pre =  head;
        while (pre.next!=null){
            transferStack.push(pre.val);
            pre = pre.next;
        }
        transferStack.push(pre.val);
        ListNode dummpy = new ListNode(-1);
        pre = dummpy;
        while (transferStack.size()>0){
            pre.next = new ListNode(transferStack.pop());
            //新链表每加一个节点,当前指针就向前走一步
            pre = pre.next;
        }return dummpy.next;
    }
代码下载地址: https://pan.quark.cn/s/b4a8e0160cfc 齿轮与轴系零件在机械设备中扮演着至关重要的角色,它们负责实现动力传输、调整运动形态以及承受工作载荷等核心功能。 在机械工程的设计实践中,齿轮和轴系的设计是一项关键的技术任务,其内容涵盖了材料选用、构造规划、承载能力分析等多个技术层面。 下面将系统性地介绍《齿轮及轴系零件结构设计指导书》中的核心知识点。 一、齿轮设计1. 齿轮种类:依据齿廓轮廓的不同,齿轮可划分为直齿齿轮、斜齿轮以及人字齿轮等类别,各类齿轮均具有特定的性能特点与适用工况,能够满足多样化的工作环境与载荷需求。 2. 齿轮规格参数:模数大小、压力角数值、齿数数量、分度圆尺寸等是齿轮设计的基础数据,这些参数直接决定了齿轮的物理尺寸与运行性能。 3. 齿轮材质选用:齿轮材料的确定需综合评估其耐磨损性能、硬度水平以及韧性表现,常用的材料包括铸铁、钢材、铝合金等。 4. 齿轮强度验证:需进行齿面接触应力分析与齿根弯曲应力分析,以确保齿轮在实际运行过程中不会出现过度磨损或结构破坏。 5. 齿轮加工工艺:涉及切削加工、滚齿加工、剃齿加工、淬火处理等工艺流程,工艺方案的选择将直接影响齿轮的加工精度与使用寿命。 二、轴设计1. 轴的分类方式:依据轴在机械装置中的功能定位与受力特点,可将轴划分为心轴、转轴以及传动轴等类型。 2. 轴的材料选择:通常采用钢材作为轴的材料,例如碳素结构钢或合金结构钢,特殊需求时可选用不锈钢材料或轻质合金材料。 3. 轴的构造规划:需详细考虑轴的轴向长度、截面直径、键槽布置、轴承安装位置等要素,以满足轴的强度要求、刚度要求以及稳定性要求。 4. 轴的强度验证:需进行轴的扭转强度分析与弯曲强度分析,以防止轴在运行过程中发生塑性变形...
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值