struct ListNode {int val;ListNode *next;ListNode(int x) : val(x), next(NULL) {}};
对于这种单向结构的指针链表,依次遍历添加,然后返回头节点。有两种方法。
1. 非递归
设置一个头指针head 和移动指针h.
ListNode head= new ListNode(0); // 头指针
ListNode h= head; // 移动指针
...
h->next = sumNode; // 给链表该位置赋值
h= h->next; // h移动指针持续向后移
return head->next; // 因为是从h->next开始赋值的,所以最后返回head->next
2. 递归
设置一个指针ans,每次递归ans->next ,最后返回ans就是头指针。
ListNode* Recursion(ListNode* ans, ...) {ans = new ListNode(SomeNumber);ans->next = Recursion(ans->next, ...);return ans; // 最终返回的是头指针
}