分解链表

package Linear;
/*
 * 分解链表:将A分解为A和B,A的序号为奇数,B序号为偶数
 */
public class D {
	public static void decompose(Node h) {
		Node A=h;
		Node B=new Node();
		Node p =h.next;
		Node q=B;
		if(p.next==null) {	//A只有一个结点,序号为奇数
			B.next=null;
			NodeTool.traverse(A);
			NodeTool.traverse(B);
			return;
		}
		while(p!=null) {
			Node t =p.next;
			if (t==null) {		//如果p下个结点为空,即可以结束循环
				q.next=null;
				break;
			}
			p.next=t.next;
			q.next=t;
			p=p.next;
			q=q.next;
		}
		NodeTool.traverse(A);
		NodeTool.traverse(B);
	}
	public static void main(String[] args) {
		Node h =NodeTool.CreateNodeList("123");
		decompose(h);
	}

}

 

你可能感兴趣的:(数据结构)