//字节逆序最直接的方法:直接循环按位取出,然后按位逆序赋值即可 int ReverseBits(int iOrigin) { int tmp=0 ; int bit_width=sizeof(iOrigin)*8 ; for(int i=0;i<bit_width;i++) { if(iOrigin&(0x01<<i)) { tmp|=(0x80000000>>i); } } return tmp ; } //单向链表逆序:定义三个链表节点指针:第一个节点用于向下遍历,后两个节点用于交换 LinkNode *ReverseLink(LinkNode *pHead) { LinkNode *pTmp=pHead ; if(pTmp==NULL) { return NULL ; } LinkNode *pTmp1=pTmp->next ; if(pTmp1==NULL) { return pHead ; } LinkNode *pTmp2=pTmp1->next ; pTmp1->next=pTmp ; pTmp->next=NULL ; if(pTmp2==NULL) { return pTmp1 ; } while(pTmp2->next!=NULL) { //向下遍历 pTmp=pTmp1 ; pTmp1=pTmp2 ; pTmp2=pTmp2->next ; //节点交换 pTmp1->next=pTmp ; } pTmp2->next=pTmp1 ; return pTmp2 ; }
字节按位逆序以及单向链表逆序
最新推荐文章于 2022-08-08 15:29:05 发布