查詢鍊錶中間節點

2021-06-29 05:21:58 字數 759 閱讀 2483

問題:鍊錶長度未知,如何查詢中間節點

分析:鍊錶中間節點受鍊錶長度影響,奇數長度如abc則中間節點為b,偶數長度如abcd則中間節點為bc。

解決方法:使用兩個指標ptr1 = ptr2 =head,同時遍歷鍊錶,ptr1步長為1,ptr2步長為2.當ptr2到達鍊錶尾時,ptr1即為中間節點(如果鍊錶長為偶數,則ptr1->next也是中間節點)。

**如下

#includetypedef struct node  

node;

node* create_list(int num)

else

cur = tmp;

} return head;

}

void print_list(node *head)

printf("\n");

}

void search_middle_node(node *head)

if ( double_step->next->next == null)

single_step = single_step->next;

double_step = double_step->next->next;

} return;

} void main()

鍊錶中間節點

題目 給定乙個帶有頭結點 head 的非空單鏈表,返回鍊錶的中間結點。如果有兩個中間結點,則返回第二個中間結點。示例 1 輸入 1,2,3,4,5 輸出 此列表中的結點 3 序列化形式 3,4,5 返回的結點值為 3 測評系統對該結點序列化表述是 3,4,5 注意,我們返回了乙個 listnode ...

尋找鍊錶中間節點

cpp view plain copy include include include include typedef intdatatype typedef struct linknode linknode,plinknode 結點結構體 typedef struct linklist linkl...

尋找鍊錶中間節點

include include include include typedef intdatatype typedef struct linknode linknode,plinknode 結點結構體 typedef struct linklist linklist plinklist 鍊錶 函式原...