CopyComplexNodes
2016-08-28 11:15
274 查看
#include<stdio.h> struct ComplexNode{ int value; ComplexNode* next; ComplexNode* sibling; }; ComplexNode* CreateComplexNode(int value){ ComplexNode* p=new ComplexNode(); p->value=value; p->next=NULL; p->sibling=NULL; return p; } void BuildNodes(ComplexNode* curr,ComplexNode* next,ComplexNode* sibling){ if(curr!=NULL){ curr->next=next; curr->sibling=sibling; } } void PrintNodes(ComplexNode* head){ ComplexNode* p=head; while(p){ printf("节点的值为%3d",p->value); if(p->sibling!=NULL) printf("节点的兄弟节点为%3d\n",p->sibling->value); else printf("\n"); p=p->next; } } void CloneNodes(ComplexNode* head){ ComplexNode* p=head; while(p){ ComplexNode* pClone=new ComplexNode(); pClone->value=p->value; pClone->next=p->next; pClone->sibling=NULL; p->next=pClone; p=pClone->next; } } void ConnectSiblingNodes(ComplexNode* head){ ComplexNode* p=head; while(p){ ComplexNode* pClone=p->next; if(p->sibling!=NULL){ ComplexNode* pSibling=p->sibling; pClone->sibling=pSibling->next; } p=pClone->next; } } ComplexNode* ReconnectCloneNodes(ComplexNode* head){ if(head==NULL) return NULL; ComplexNode* p=head; ComplexNode* pClone; ComplexNode* cloneHead=p->next; pClone=cloneHead; p->next=pClone->next; p=pClone->next; while(p){ pClone->next=p->next; pClone=p->next; p->next=pClone->next; p=pClone->next; } return cloneHead; } ComplexNode* clone(ComplexNode* pHead){ CloneNodes(pHead); ConnectSiblingNodes(pHead); return ReconnectCloneNodes(pHead); }
相关文章推荐
- Leetcode 138,Copy list with random nodes
- How to Copy ASM Files Across Nodes [ID 1147859.1]
- Exercise——CopyComplexList
- 多线程实现Copy
- Swap Nodes in Pairs - LeetCode 24
- Oracle12C--NOCOPY选项(四十三)
- IOS atomic与nonatomic,assign,copy与retain的定义和区别
- Swap Nodes in Pairs
- ChildNodes VS Children
- pb实现文件copy
- IOS CopyPNGFile 异常问题解决
- (OK) MIMP - 16 ( 6 nodes) - 抓包-缺少JION - 节点1:服务器 mptcp-tcpdump1-server.txt
- hadoop搭建异常 /tmp/hadoop-root/mapred/system/jobtracker.info could only be replicated to 0 nodes, inste
- news editor and copy desk
- (OK) MIMP - 17 ( 5 nodes) - 抓包-缺少 MPTCP-JION - 节点5:客户端 grep neigh mptcp-kmsg-client.txt
- System.arraycopy()的使用
- Reverse Nodes in k-Group
- copy 自定义对象
- 超棒的jQuery密码强度检验插件 - Complexify
- copy语法