组合列表节点

时间:2016-04-07 15:42:17

标签: c linked-list nodes

如果给出一个链表,那么我们必须进行操作,即使索引节点排列在一起,奇数索引节点也会在索引节点之后排列在一起。

以下链接列表1-->2-->3-->4-->5-->6应输出:

 2-->4-->6-->1-->3-->5

2 个答案:

答案 0 :(得分:0)

我们说这是你的清单:

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <View
        android:id="@+id/viewTop"
        android:layout_width="match_parent"
        android:layout_height="120dp"
        android:layout_alignParentTop="true"/>

    <View
        android:id="@+id/viewMiddle"
        android:layout_above="@id/viewBottom"
        android:layout_below="@id/viewTop"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

    <LinearLayout
        android:id="@+id/viewBottom"
        android:layout_width="match_parent"
        android:layout_height="120dp"
        android:layout_alignParentBottom="true">

        <View
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="50"/>

        <View
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="50"/>

    </LinearLayout>

</RelativeLayout>

首先,您需要将typedef struct node { int val; struct node * next; } node_t; 分配给列表的pointer,如下所示:

head

然后使用node_t * head = NULL; head = malloc(sizeof(node_t)); 循环:

for

请注意,此代码仅打印。它不会改变你的清单。

答案 1 :(得分:0)

node_t *cursor = input_list;
while(cursor) {
    if(cursor->value % 2 == 0)
        append(output_list, cursor->value)
    cursor = cursor->next;
}

cursor = input_list;
while(cursor) {
    if(cursor->value % 2 == 1)
        append(output_list, cursor->value)
    cursor = cursor->next;
}